构造django形式的属性值

时间:2016-01-06 15:36:50

标签: django django-forms

如何将值传递给django表单中的属性构造函数?

换句话说,我有一个这样的表单,我想在实例化表单时设置SOMETHING。

class ImageUploadFileForm(forms.ModelForm):
    class Meta:
        model = Photo
        fields = [ 'image' ]
    image = cloudinary.forms.CloudinaryJsFileField({ 'public_id': SOMETHING })

即。在视图中:

uploadform = ImageUploadFileForm(instance=whatever, something='BLAHBLAHBLAH')

我怀疑我错误地想到了这个......

Thx Shang Wang!

对于在CloudinaryJSFileField中搜索的所有人,不要忘记添加“选项”,如下所示:

class ImageUploadFileForm(ModelFormControlMixin):
    class Meta:
        model = Photo
        fields = [ 'image' ]

    def __init__(self, *args, **kwargs):
        self.public_id = kwargs.pop('public_id')
        super(ImageUploadFileForm, self).__init__(*args, **kwargs)
        self.fields['image'] = cloudinary.forms.CloudinaryJsFileField(options={ 'public_id': str(self.public_id) })

1 个答案:

答案 0 :(得分:2)

class ImageUploadFileForm(forms.ModelForm):
    class Meta:
        model = Photo
        fields = [ 'image' ]

    def __init__(self, *args, **kwargs):
        self.something = kwargs.pop('something')
        super(ImageUploadFileForm, self).__init__(*args, **kwargs)
        self.fields['image'] = cloudinary.forms.CloudinaryJsFileField({ 'public_id': self.something })

然后

uploadform = ImageUploadFileForm(instance=whatever, something='BLAHBLAHBLAH')

将参数传递给表单构造函数的非常标准的方法。