【发布时间】:2014-11-11 20:36:15
【问题描述】:
我有一个隐藏字段可以在创建文章时保存,还有另一个隐藏字段可以告诉文章状态: forms.py:
class SavedArticles(forms.ModelForm):
class Meta:
model = Article
fields =['title', 'content', 'status', 'time_created','publisher']
widgets = {
'status': forms.HiddenInput(),
'time_created': forms.HiddenInput()
}
time_created和status的内容由我在后台提供:
def publish(request):
if request.method == 'POST':
article = SavedArticles(request.POST or None)
if article.is_valid():
article = article.save(commit = False)
article.status = 0 #have tried articles.data['status'] = 0
article.time_created = timezone.now() #have tried articles.data['time_created'] = 0
article.save()
return HttpResponseRedirect(reverse('mysite:home'))
我的路线很好,但每当我感觉表单提交时,我都会收到以下错误:
(Hidden field status) This field is required.
(Hidden field time_created) This field is required.
我在做什么错误?我已经尝试了一整天。
【问题讨论】:
-
如果
time_created和status的值将在您的视图中提供,您为什么要从表单中传递它们?如果没有初始值,如果这些字段未在您的模型上指定为blank=True,则表单将无法验证。 -
你是对的,正如stackoverflow.com/a/11261338/3009875 所解释的那样。谢谢。
-
不客气。很高兴能提供帮助。
-
您想发布一个答案以便我接受它以避免进一步的 cmets 或答案?
标签: python django forms django-forms django-views