【发布时间】:2013-11-28 20:07:38
【问题描述】:
我想创建使用通用 CreateView 预填充或后填充的隐藏字段,但据我所知,我只有两个不需要指定表单的选择。
这将显示预填充的字段:
class FootCreate(CreateView):
model = Footprint
fields = ["source","size","notes", "parent", "created_by"]
success_url = reverse_lazy('home')
def get_initial(self):
parent = Object.objects.get(id=self.kwargs['obj_id'])
return { 'parent': parent, 'created_by': self.request.user }
或者从字段列表中删除我不想显示的字段:
fields = ["source","size","notes"]
但现在表单上没有填充字段,因此无法验证。
我知道我可以通过子类化表单或使用 javascript 隐藏表单上的字段来处理这个问题,但我想知道是否有一个选项可以等效于:
fields = ["source","size","notes", "parent", "created_by"]
hidden_fields = ["parent", "created_by"]
在视图内?
回答 否 - 但自定义模型表单只需要几行。给出视图中字段的完整列表。:
class FootprintForm(ModelForm):
class Meta:
model = Footprint
widgets = {'created_by': forms.HiddenInput, "object": forms.HiddenInput}
【问题讨论】:
标签: django django-views