[英]How to get a filed from self.data in model_formset_factory in clean method
我正在使用modelformset_factory
在界面上编辑多个图像。 每个图像中都有以下字段。
Name
User
City
我已允许用户选择当前不在系统中的新用户,(对于这种情况,我应该在def clean_user(self)
获得文本“ Jack”,而不是ID
。
但是使用model_formseta_factory
,我在self.data中得到了一些有线名称。 当我尝试获取self.data.get('user')时,我一无所获,显然没有使用该名称的密钥,该密钥的形式类似于form_0_user
等。
fields = ['city', 'name']
注意,我的字段中没有用户。 如果我这样做,它将无法通过验证。
def clean(self):
data = self.cleaned_data
data['name'] = data.get('name', '').strip()
return data
工作正常
pic_credits = self.data.get('user')
这不是。
pic_credits = self.data.get('form-0-name')
这也很好。
请帮忙。
如果要使用self.data
而不是self.cleaned_data
,则可以使用字段auto_id
和prefix
(或至少在表单已由表单集实例化的情况下)构造“复合前缀”。
参见_construct_form()
https://docs.djangoproject.com/es/1.9/_modules/django/forms/formsets/
您的方法将如下所示:
def clean(self):
# ...
form_prefix_and_autoid = "%s-%d-" % (self.prefix, self.auto_id)
pic_credits = self.data.get(form_prefix_and_autoid + 'name')
# ...
更新:
调用方法self.add_prefix
简单得多
pic_credits = self.data.get(self.add_prefix('name'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.