我有以下几种型号:
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_ does’。此外,如何将这些选项保存在供应商模型中,因为这些字段(address_proof、pan_card)不存在于其中,而仅存在于表单中。我如何将它们映射为/override模型上的保存方法,以便将其保存为“doc_proofs”?使用django 1.6.5
发布于 2014-09-26 10:51:03
通过创建与具有不同相关名称的同一个供应商模型的重复关系来找到解决方案,如下所示,在供应商模型定义中添加了这些字段:
address_proofs = models.ManyToManyField(DocProof,
related_name='address_proofs')
pan_card = models.ManyToManyField(DocProof,
related_name='pan_card')但是,重复关系对上述相同模式的影响是什么?
https://stackoverflow.com/questions/26056385
复制相似问题