Мое представление представляет собой представление, основанное на функциях (это устаревшее представление, и из-за использования встроенного набора форм его легче сохранить таким, а не CBV). Моя цель - иметь возможность отображать ModelForm для объекта модели Article.objects.get(user=user).latest("id") и с помощью метода POST обновлять тот же объект, который был визуализирован. Проблема в том, что ModelForm «не помнит» объект, которому он соответствовал. Каким будет правильный способ передать эту информацию об объекте в представление для использования в методе POST?
Ниже представлена упрощенная версия views.py и urls.py.
просмотры.py
from django.contrib.auth.models import User
from django.shortcuts import render_to_response
from django.template import RequestContext
from specify.models import Article
from specify.forms import ArticleForm
def index(request):
user = User.objects.get(username=request.user.username)
if request.method == "POST":
a_form = ArticleForm(request.POST, instance= *???* )
a_form.save()
else:
a = Article.objects.get(user=user).latest("id")
a_form = ArticleForm(instance=a)
return render_to_response(
"specify/index.html",
{
"a_form" : a_form,
},
context_instance=RequestContext(request)
)
urls.py
from django.conf.urls import patterns, url
from specify import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index')
)
EDIT1: добавлены models.py и forms.py
модели.py
from django.db import models
class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
формы.py
from django.forms import ModelForm
from specify.models import Article
class ArticleForm(ModelForm):
class Meta:
model = Article
fields = ['pub_date', 'headline', 'content']
a_form = ArticleForm(request.POST, instance= *???* )
? Вы хотите сохранить его в БД? - person Khamidulla   schedule 09.01.2014