我将通过内表上的过滤器选择2个连接表的数据
这是我的模特:
class tbl1(models.Model):
id1 = models.AutoField(db_column='id1', primary_key=True)
id2 = models.ForeignKey(tbl2, models.PROTECT, db_column='id2', blank=True, null=True)
val = models.CharField(max_length=30, blank=True, null=False)
...
class tbl2(models.Model):
id2 = models.AutoField(db_column='id2', primary_key=True)
order = models.CharField(max_length=30, blank=True, null=False)
....
我需要这个SQL语句:
select id1, val
from tbl1
inner join tbl2 on tbl1.id2=tbl2.id2
WHERE order='xyz'
我试试:
obj = tbl1.objects.select_related('id2').filter(order='xyz')
我收到了这个错误:
FieldError:无法将关键字'order'解析为字段...
有什么问题?
THX 弗兰克
答案 0 :(得分:0)
你应该做
obj = tbl1.objects.select_related('id2').filter(id2__order='xyz')
# ------^
relationshipfield__modelfield
是django中用于过滤与模型有关系的模型的约定。
应该在教程或参考文档中找到它。