问题描述
我将ManytoManyfield用作“公司”模型中另一个模型的外键引用,但是当我查询公司表时,数据库中未显示多对多字段。我期待至少该键的参考号。但是显示了其他使用的外键。
"""
Company Model
"""
class Company(models.Model):
# choice fields
STATUS = [
('active','Active'),('inactive','Inactive'),('blocked','Blocked'),('deleted','Deleted'),]
ACCOUNT_TYPE = [
('distributor','Distributor'),('personal','Personal'),('retailer','Retailer'),('point','Point'),('manufacturer','Manufacturer')
]
companyID = models.AutoField(primary_key=True,verbose_name='Company ID')
companyAccountType = models.CharField(max_length=15,choices=ACCOUNT_TYPE,verbose_name='Acc. Type')
companyStatus = models.CharField(max_length=10,choices=STATUS,default='active',verbose_name='Status')
companyDetailTagLine = models.TextField(max_length=255,verbose_name='Tagline',null=True,blank=True)
businessType = models.ManyToManyField(
BusinessType,verbose_name='Business Types',blank=True,related_name='businessTypes2',)
此处businessType是来自BusinessType模型的外键引用
"""
Business Type Model
"""
class BusinessType(models.Model):
businessTypeID = models.AutoField(primary_key=True,verbose_name='ID')
businessTypeLabel = models.CharField(max_length=100,verbose_name='Title')
businessTypeDesc = models.TextField(verbose_name='Desc')
businessTypeImg = models.CharField(max_length=1000)
我正在尝试使用CompanyDetail模型中也存在companyDetailBusinessType的数据来更新Company模型。尽管我已经成功更新了其他值,但无法更新businessType。有什么方便的方法可以用SQL更新manytomanyfield?预先感谢。
class CompanyDetail(models.Model):
def all_values(self,obj,company_userinfo):
data = {
# 'companyDetailID':obj.companyDetailID,'fk_companyDetail_companyID':obj.fk_companyDetail_companyID.companyID,'companyDetailName':obj.companyDetailName,'companyDetailTagLine':obj.companyDetailTagLine,'companyDetailBusinessType':obj.companyDetailBusinessType.all().values_list('businessTypeID',flat = True),}
return data
companyDetailID = models.AutoField(primary_key=True,verbose_name='ID')
fk_companyDetail_companyID = models.OneToOneField('Company',related_name='companyDetail_company_relation',on_delete=models.CASCADE,verbose_name='Company'
)
companyDetailName = models.CharField(max_length=100,verbose_name='Name')
companyDetailTagLine = models.TextField(max_length=255,blank=True)
companyDetailBusinessType = models.ManyToManyField(
BusinessType,related_name='businessTypes'
)
fk_companyDetail_districtID = models.ForeignKey('District',related_name='companyDetail_district_relation',verbose_name='District'
)
fk_companyDetail_upazilaID = models.ForeignKey('Upazila',related_name='companyDetail_upazila_relation',verbose_name='Upazila'
)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)