Django使用通用视图保存多对多条目
我有一个django模型,具有多对多字段,如下所示:Django使用通用视图保存多对多条目,django,django-views,Django,Django Views,我有一个django模型,具有多对多字段,如下所示: class Sponsor(CommonInfo, Person): signature_code = models.CharField(max_length=20, blank=True) account = models.ForeignKey(Account) department = models.ForeignKey(Department) product = models.ManyToManyFiel
class Sponsor(CommonInfo, Person):
signature_code = models.CharField(max_length=20, blank=True)
account = models.ForeignKey(Account)
department = models.ForeignKey(Department)
product = models.ManyToManyField(Product, null=True, blank=True, through = 'ProductSponsor')
accounts = models.ManyToManyField(Account, null=True, blank=True, through = 'AccountSponsor', related_name='sponsoraccounts')
我的看法是:
class SponsorEdit(UpdateView):
model = Sponsor
template_name = 'sponsoredit.html'
fields = ('account', 'department', 'exp_date', 'last_name', 'first_name', 'signature_code', 'comments', 'product', 'accounts')
通过在多对多关系中添加一些字段来编辑条目时,出现以下错误:
AttributeError at /irms/sponsoredit/2
Cannot set values on a ManyToManyField which specifies an intermediary model. Use irms.ProductSponsor's Manager instead.
问题出在哪里?在您的模型中,您使用的是
accountshandor
和productshandor
。它们是关系的自定义中间表,当保存赞助商
对象时,需要手动设置中间'产品赞助商
'和'账户赞助商
'对象。比如:
ProductSponsor.objects.create(sponsor=SponsorObject, product=ProductObject)
AccountSponsor.objects.create(sponsor=SponsorObject, account=AccountObject)