【发布时间】:2022-01-10 17:32:07
【问题描述】:
我有一个非常大的表单,我有一个更新视图。问题是当用户提交更新时,它说某些字段是必需的,例如作者和发布日期。我不希望用户更改这些字段。字段是手动渲染的
如何在更新视图中忽略这些字段。
我已尝试将要求设置为 false
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['author'].required = False
self.fields['date_posted'].required = False
但这会引发null value in column "author" of relation "blog_post" violates not-null constraint
很多帖子说要添加null=True,但这些字段不能为空
查看:
class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = Post
form_class = PostFormUpdate
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def test_func(self):
post = self.get_object()
if self.request.user.id == post.author_id:
return True
return False
表格:
class PostFormUpdate(ModelForm):
class Meta:
model = Post
fields = '__all__'
【问题讨论】:
标签: django django-forms