首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在表单上创建m2m字段的部分,并在django中保存模型选择?

如何在表单上创建m2m字段的部分,并在django中保存模型选择?
EN

Stack Overflow用户
提问于 2014-09-26 09:32:36
回答 1查看 58关注 0票数 0

我有以下几种型号:

代码语言:javascript
复制
PROOF_TYPE_CHOICES =(('A','Address proof'),
                     ('P','PAN card'),
                     )

class DocProof(models.Model):
    name = models.CharField(max_length=100,unique=True)
    type = models.CharField(max_length=1,default='A',
                            choices=PROOF_TYPE_CHOICES
                            )

class Vendor(models.Model):
    name = models.CharField(max_length=100)
    doc_proofs = models.ManyToManyField(DocProof)

我希望在供应商表单的不同部分显示不同类型的文件证明类型。示例:

代码语言:javascript
复制
class VendorForm(forms.ModelForm):
    model = Vendor
    # doc_proofs = forms.ModelMultipleChoiceField(
    # queryset=DocProof.objects.all().order_by('-type'),
    # required=True,
    # widget=forms.CheckboxSelectMultiple())

    address_proofs = forms.ModelMultipleChoiceField(
        queryset=DocProof.objects.filter(type='A').order_by('-type'),
        required=True,
        widget=forms.CheckboxSelectMultiple())

    pan_card = forms.ModelMultipleChoiceField(
        queryset=DocProof.objects.filter(type='P').order_by('-type'),
        required=True,
        widget=forms.CheckboxSelectMultiple())

这肯定会呈现显示的供应商表单中的不同部分,但也不允许我保存表单,因为它会抛出错误,因为表单字段集不包括原始的‘doc_ does’。此外,如何将这些选项保存在供应商模型中,因为这些字段(address_proof、pan_card)不存在于其中,而仅存在于表单中。我如何将它们映射为/override模型上的保存方法,以便将其保存为“doc_proofs”?使用django 1.6.5

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 10:51:03

通过创建与具有不同相关名称的同一个供应商模型的重复关系来找到解决方案,如下所示,在供应商模型定义中添加了这些字段:

代码语言:javascript
复制
address_proofs = models.ManyToManyField(DocProof, 
                                        related_name='address_proofs')
pan_card = models.ManyToManyField(DocProof, 
                                     related_name='pan_card')

但是,重复关系对上述相同模式的影响是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26056385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档