构造django形式的属性值

问题描述 投票:1回答:1

如何将值传递给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) })
django django-forms
1个回答
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')

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

© www.soinside.com 2019 - 2024. All rights reserved.