两个表之间的django查询问题
我已经详细地读到了 但是,尽管我努力尝试django,我还是无法得到我想要的 我写了一个正向查询:两个表之间的django查询问题,django,django-queryset,Django,Django Queryset,我已经详细地读到了 但是,尽管我努力尝试django,我还是无法得到我想要的 我写了一个正向查询: ATUFS = TSFH.objects.filter(FKToUser=request.user).values('sB','sE') 这将返回: {'sB': datetime.datetime(2019, 5, 21, 18, 14, 2, 691185, tzinfo=<UTC>), 'sE': datetime.datetime(2019, 5, 21, 18, 16,
ATUFS = TSFH.objects.filter(FKToUser=request.user).values('sB','sE')
这将返回:
{'sB': datetime.datetime(2019, 5, 21, 18, 14, 2, 691185, tzinfo=<UTC>), 'sE': datetime.datetime(2019, 5, 21, 18, 16, 2, 532731, tzinfo=<UTC>)}
我如何通过Django orm实现我想要做的事情
谢谢
更新的视图/模板
这就产生了空白输出的问题
关于如何解决的任何想法。您可以这样尝试,因为sB和sE在TSFH模型中,所以您需要将FKTOSFH放在sB和sE之前,如下所示:
TSF.objects.filter(FKToTld__dNm='123.123.13.1').values('FKToTSFH__sB','FKToTSFH__sE')
# with user
TSF.objects.filter(FKToTld__FKToUser=request.user).values('FKToTSFH__sB','FKToTSFH__sE') # make sure user is authenticated
用法
更新2:
您可以使用检查空值是否存在:
# view
queryset = TSF.objects.filter(FKToTld__dNm='123.123.13.1', FKToTSFH__sB__isnull=False)
return ('template.html', context={'tsf': queryset})
# template
{% for i in tsf %}
{{ i.FKToTSFH.sB }}
{% endfor %}
谢谢ruddra-如何输出第一个代码框?对不起,输出是什么意思?你的意思是想如何使用查询集?是的,我如何循环代码框1的查询集?@Jshee我在答案的更新部分分享了几个示例。请创建一个lookUse Completed=TSF.objects.filterFKToT\uu FKToUser=request.user,FKToTSFH\uu sE\uu isnull=False only。没有价值观。就像在更新2中一样
TSF.objects.filter(FKToTld__dNm='123.123.13.1').values('FKToTSFH__sB','FKToTSFH__sE')
# with user
TSF.objects.filter(FKToTld__FKToUser=request.user).values('FKToTSFH__sB','FKToTSFH__sE') # make sure user is authenticated
from django.db.models import F
TSF.objects.filter(FKToTld__dNm='123.123.13.1').annotate(sB=F('TSFH__sB'), sE=F('FKToTSFH__sE')).values('sB','sE')
for item in TSF.objects.filter(FKToTld__dNm='123.123.13.1'):
print(item.FKToTSFH.sB)
print(item.FKToTSFH.sE)
for item in TSF.objects.filter(FKToTld__dNm='123.123.13.1').values('FKToTSFH__sB', 'FKToTSFH__sE'):
print(item.get('FKToTSFH__sB'))
print(item.get('FKToTSFH__sE'))
for (sB, sE) in TSF.objects.filter(FKToTld__dNm='123.123.13.1').values_list('FKToTSFH__sB', 'FKToTSFH__sE'):
print(sB)
print(sE)
# view
queryset = TSF.objects.filter(FKToTld__dNm='123.123.13.1', FKToTSFH__sB__isnull=False)
return ('template.html', context={'tsf': queryset})
# template
{% for i in tsf %}
{{ i.FKToTSFH.sB }}
{% endfor %}