找不到给self.companies.merchant一个id的方法
错误是:无法指定“1”:“Company.merchant”必须是“商家”实例。
我找了另外一个这样的问题但却不明白。
self.merchant = Merchant.objects.create(
name='merchant',
ref_code='45664',
)
self.companies = Company.objects.create(
name='companyone',
ref_code='222',
merchant=Merchant.objects.first().id,
),
self.merchant.companies.add(*self.companies)
商家模式:
class Merchant(models.Model):
name = models.CharField(max_length=255)
ref_code = models.CharField(max_length=32)
公司型号:
class Company(models.Model):
name = models.CharField(max_length=255)
ref_code = models.CharField(max_length=32)
merchant = models.ForeignKey(
'accounts.Merchant', related_name='companies')
答案 0 :(得分:2)
您需要提供Merchant
实例(到merchant
参数)或id
,但要将其分配给merchant_id
参数。所以这将有效:
self.companies = Company.objects.create(
name='companyone',
ref_code='222',
merchant_id=Merchant.objects.first().id,
),
或
self.companies = Company.objects.create(
name='companyone',
ref_code='222',
merchant=Merchant.objects.first(),
),
另外你会得到TypeError
,因为你试图解包self.companies
实例而不是可迭代的Company
。
正如@brunodesthuilliers所指出的,商家已经连接到创建的Company
对象。
答案 1 :(得分:0)
self.companies = Company.objects.create(
name='companyone',
ref_code='222',
merchant_id=Merchant.objects.first().id,
)