我有两个表,但是我只是想从dNm
表中获取T
(在连接时),但是我只能从TSF
中提取字段。
我有模型文件: 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>>
但是,它仅允许我在伪sql中执行以下操作:
SELECT <any field from TSF>
FROM T, TSF
WHERE T.id=TSF.FKToT
AND T.FKToUser=<<THE CURRENTLY SIGNED IN USER>>
我的views.py:
def viewed(request):
AUS = TSF.objects.filter(FKToTld__FKToUser=request.user).values('dNm')
return render(request, 'file.html', {
'ATFS':ATFSs
})
输出模板
{{ t.dNm }}
更新现在这不是在页面上引发错误,而是发送了很多空白。
我在这里做什么错了?
答案 0 :(得分:0)
values()
返回字典查询集。您可以检查here以获得更多信息。
您可以执行以下操作:
views.py
AUS = TSF.objects.filter(FKToTld__FKToUser=request.user).values('FKToTld__dNm').disctinct()
template.html
{% for key, value in ATFS.items %}
{{ key }}: {{ value }}
{% endfor %}
答案 1 :(得分:0)
使用 values('FKToTld__dNm')
代替 values('dNm')
def viewed(request):
AUS = TSF.objects.filter(FKToTld__FKToUser=request.user).values('FKToTld__dNm').order_by('FKToTld__dNm').distinct()
return render(request, 'file.html', {
'ATFS':ATFSs
})
以及您模板中的
{% for instance in ATFS %}
{{ instance.FKToTld__dNm }}
{% endfor %}