python-从对象字典创建Django表单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-从对象字典创建Django表单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1040字,纯文字阅读大概需要2分钟。
内容图文
我觉得这一定很简单,但是经过几天的尝试,我还是一无所知.
我有一本字典,其中的键是对象,值是对象列表.这是我要使用该信息构造表单的方式:
for object in dictionary:
name_of_field = object.slug
name_of_field = forms.ModelMultipleChoiceField(widgets=forms.CheckboxSelectMultiple, queryset=dictionary[object])
当然,仅将name_of_field放在其中两次就无法生成动态命名的字段.这实际上是使用迭代的最终对象创建一个名为“ name_of_field”的字段.我希望它会为字典中的每个键创建一个字段,使用该键对象的子句和该键的值的选择集来命名.
有没有一种方法可以循环浏览此字典并创建我想要的表单字段?我觉得答案就在__init__的超类中,但我仍然无法解决如何获取多个具有不同名称的字段的问题.
解决方法:
您不会说您在哪里使用此代码.您应该将其放入表单的__init__方法中,从中可以引用self.fields:
class DynamicForm(forms.Form):
def __init__(self, *args, **kwargs):
dynamic_fields = kwargs.pop('dynamic_fields')
super(DynamicForm, self).__init__(*args, **kwargs)
for key, value in dynamic_fields:
self.fields[key.slug] = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=value)
内容总结
以上是互联网集市为您收集整理的python-从对象字典创建Django表单全部内容,希望文章能够帮你解决python-从对象字典创建Django表单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。