作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我曾尝试访问我的 Django 模板中的连接数据,但没有任何效果,非常感谢您提供一点帮助。
Model1():
project_code = Foreignkey(another table1)
shot_code = charfield(primary_key = True)
shot_name = charfield()
sequence_name = Integerfield()
Model2():
vendor_id = Foreignkey(another table2)
shot_code = Foreignkey(Model1, on_delete= models.CASCADE)
shot_rate = integerfield()
shot_bid = integerfield()
我想展示
Select * from Model1 a, Model2 b, where a.shot_code = b.shot_code
and model1.project_code = "XXX"
模板中要访问的列是
1. Shot code
2. Shot name
3. Sequence name
4. Shot rate
5. Shot bid
6. Vendor id
我试过下面的方法
1. Using Select_related
result = only values of model2 is displayed
unable to access model1's data,
error = 'QuerySet' object has no attribute model1
最佳答案
您希望这会返回一个还是多个实例?最好的方法仍然是使用 select_related
,例如:
Model2.objects.filter(shot_code__project_code=<your value>).select_related("shot_code")
对于具有多个 Model2
实例的查询集,或者如果您希望只有一个实例,则在末尾添加 .get()
。
或者,您可以添加 .values()
,而不是对两个相关模型进行操作,获得类似 dict 的连接结果(但请注意,您将无法重用 shot_code
直截了当,因为它会与您的外键名称冲突):
Model2.objects.filter(shot_code__project_code=<your value>).annotate(
sequence_name=F("shot_code__sequence_name"),
shot_name=F("shot_code__shot_name"),
real_shot_code=F("shot_code__shot_code")
).values(
"sequence_name", "shot_name", "real_shot_code", "shot_rate", "shot_bid", "vendor_id"
)
和往常一样,我建议不要将您的 ForeignKey
命名为 vendor_id
,因为它会将真实 ID 放在 vendor_id_id
下,并且命名会有点不清楚。
关于python - 如何在 Django 1.8 中连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54687255/
我是一名优秀的程序员,十分优秀!