0
我有以下型号:如何在窗体上创建m2m字段的部分并在django中保存模型选择?
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)
我希望在供应商形式的不同部分,以显示不同类型的文件证据类型。例如:
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_proofs”。此外,如何在Vendor模型中保存这些选项,因为这些字段(address_proof,pan_card)不在其上,但仅在表单上。我如何映射它们/覆盖模型上的保存方法以将其保存为'doc_proofs'?通过创建重复关系,与不同的相关名称相同的供应商型号如下在供应商模型定义使用Django 1.6.5