问题描述
我有以下两个要在表单集中使用的模型。我不确定我错了
models.py
class AppTradingPartnerTrp(models.Model):
id_trp = models.AutoField(primary_key=True)
tpid_trp = models.CharField(max_length=50,blank=True,null=True)
name_trp = models.CharField(max_length=50)
description_trp = models.CharField(max_length=100,null=True)
idtrn_trp = models.ForeignKey('AppTransmissionTrn',models.DO_nothing,db_column='idtrn_trp',null=True)
class AppCustomerTpRel(models.Model):
id_rel = models.AutoField(primary_key=True)
idcst_rel = models.ForeignKey(AppCustomerCst,db_column='idcst_rel')
idtrp_rel = models.ForeignKey(AppTradingPartnerTrp,db_column='id_trp')
cust_vendor_rel = models.CharField(max_length=50,null=True)
sender_id_rel = models.CharField(max_length=50,null=True)
old_vendor_rel = models.CharField(max_length=50,null=True)
vendor_name_rel = models.CharField(max_length=50,null=True)
category_rel = models.CharField(max_length=50,null=True)
这是我尝试创建表单集的地方:
forms.py
CstvendorNoFormSet = inlineformset_factory(AppCustomerTpRel,AppTradingPartnerTrp,exclude=())
但是当我运行服务器时,我得到了:
ValueError: 'AppTradingPartnerTrp' has no ForeignKey to 'AppCustomerTpRel'.
解决方法
您已颠倒了模型顺序
inlineformset_factory(parent_model,model,... )
父模型为AppTradingPartnerTrp
,因为它有多个AppCustomerTpRel
(外键)
CstVendorNoFormSet = inlineformset_factory(AppTradingPartnerTrp,AppCustomerTpRel,exclude=())
,
您似乎错误地找到了ForeignKey关系。
旁注:我注意到,在您的'AppTradingPartnerTrp'模型中,对于idtrn_trp FK字段,您将'AppTransmissionTrn'作为字符串,我认为它应该是不带撇号的AppTransmissionTrn。