7.22-7.23 JLL实习日志-ManytoMany模型+python中 reload 函数

  1. 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()


  1. 通过用户 自带 的 属性,import不同 的 .py文件 的 时候 需要 使用 重新 加载 的 函数 ,否则 只会 加载 第一个 import文件 ,后面 的 会报错
reload()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值