![](/img/trans.png)
[英]How to render Form instance in Django CreateView & UpdateView?
[英]The proper Django way to make a form field required on CreateView, but optional on UpdateView?
比方说,我创建一个模型MyModel
,有一个实例FileField
使用CreateView
和相关的MyModelCreateForm
,现在我想不载同样的头像图片进行更新:
class MyModel(models.Model):
name = models.CharField()
avatar = models.ImageField()
class MyModelCreateForm(forms.ModeForm):
class Meta:
model = MyModel
exclude = None
class MyModelCreate(CreateView):
model = MyModel
form_class = MyModelCreateForm
class MyModelCreate(UpdateView):
model = MyModel
form_class = ?
在CreateView的窗体上,图像是强制性的。 如果我想在更新字段上将其设置为可选,那么最像Django的方式是什么?
我是否需要为继承自MyModelCreateForm
但覆盖MyModelCreateForm
required
属性的UpdateView新建表单? 还是有更多的“内置电池”方式?
这是一个必填字段的解决方案:
class Foo(CreateView):
model = Fiz
fields = ('bar',)
def get_form(self, form_class=None):
form = super(Foo, self).get_form(form_class)
form.fields['bar'].required = True
return form
我认为不,但您可以在其中实施!
class ModelXForm(ModelForm):
class Meta:
model = x
fields = ['image','name']
def __init__(self,update, survey, **kwargs):
super(FBRequestForm, self).__init__(**kwargs)
if not update:
self.fields['image'].widget.attrs['readonly'] = True
self.fields['image'].widget = forms.HiddenInput()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.