在CreateView上使用表单字段的正确Django方法,但在UpdateView上是可选的吗?

时间:2017-02-11 18:45:47

标签: python django generics

我们说我创建了一个模型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-ish最常用的方法是什么?

我是否需要为继承自MyModelCreateForm的UpdateView创建一个新表单,但是会覆盖ImageField required属性?或者是否有更多的电池包含"方式是什么?

2 个答案:

答案 0 :(得分:1)

这是一个需要字段的解决方案:

Xunit.Sdk.EqualException: Assert.Equal() Failure
           ↓ (pos 1)
Expected: x y
Actual:   x\\n  y
           ↑ (pos 1)

答案 1 :(得分:0)

我认为不,但你可以在其中实施!

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()
相关问题