- view_company how to get the value of id
处理ManyToMany 的 数据 模型 的 时候
数据模型 如下
class Brand(models.Model):
Company_Group = models.ManyToManyField(Company)
class Company(models.Model): Pref_Company_Name_Flg=models.CharField(u'Preferred Name Flag',max_length=255, default="")
Pref_Company_Name = models.CharField(u'Preferred Name',max_length=255, default="")
查找 到 所有包含了 company_id 的 brand 对象 ,错误 的版本 如下
brands = Brand.objects.all()
company_instance=company.objects.filter(id=company_id)
for brand in brands:
for i in Brand.Company_Group.through.objects.filter(Company_Group = brand):
print i.id
报错 信息 如下
Cannot resolve keyword 'Company_Group' into field. Choices are: brand, brand_id, company, company_id, id
错误 解决方式 知识 :
没有理解 ManytoMany组成方式,分为 隐式定义和 显示定义 (双向 or单向 ),我用的是 “单向显示定义”的 形式 ,隐式定义 的 限制 比较多,必须 用它固定的写法 ,显式 定义 更加 灵活,可以 用 filter的 过滤 条件,我 在 brand 这边 定义了 一个 Company_Group
的 显示 定义 ,
从 brand 出发 “显式 定义” 可以 使用下面的 方式 companies=brand_instance.Company_Group.all()
得到 对应 的 所有 的 brand_instance
的 对象 ,但是 反向 定义 的时候,需要使用_set.all()
比如 这样子的 方式
company=Company.objects.get(id=company_id)
brand_instances = company_instance.brand_set.all()
- 通过用户 自带 的 属性,
import
不同 的.py
文件 的 时候 需要 使用 重新 加载 的 函数 ,否则 只会 加载 第一个import
文件 ,后面 的 会报错
reload()