我正在尝试在我的django模型中查询2个表-但是在制定如何编写语法方面存在一些问题。
models.py
class T(models.Model):
emailVerified = models.EmailField(max_length=50)
dNm = models.CharField(max_length=40,unique=True)
FKToUser = models.ForeignKey('auth.user', default=None, on_delete=models.PROTECT)
class TSF(models.Model):
httpResponse = models.IntegerField(validators=[MaxValueValidator(3)])
FKToT = models.ForeignKey('T', on_delete=models.PROTECT)
在常规(伪)sql中,我正在尝试执行以下操作:
SELECT dNm
FROM T, TSF
WHERE T.id=TSF.FKToT
AND T.FKToUser=<<THE CURRENTLY SIGNED IN USER>>
我在制定如何在Django orm中编写代码时遇到了一些问题。
有人可以帮忙吗?谢谢
答案 0 :(得分:2)
您尝试过这个吗
TSF.objects.filter(FKToT__FKToUser=request.user)
这将返回与当前登录用户相关的 TSF
Queryset
对象。
如果需要,可以使用values()
从 QuerySet
中检索特定字段。
这种表示法是什么:FKToT__FKToUser在做什么?
__
(双下划线)是Django中的 字段查找 符号(您可以在此处阅读更多信息,{{ 3}})
但是,这里的 __
是 通过关系查找 ,Django Field lookup--Django Doc,它导致 SQL JOIN