[英]django reverse lookup query within three tables
我有三個表User,Users_clients和Credits。 我想列出當前用戶的客戶及其詳細信息和信譽的表。 如果信用表中列出了任何客戶,則信用應返回0,否則應返回信用值。
我的model.py是
class User_clients(models.Model):
user = models.ForeignKey(User, related_name='myuser')
client = models.ForeignKey(User, related_name='myclient')
class Credits(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
credit = models.IntegerField(null=True, default=0)
我的views.py是
def clients(request):
try:
data = User_clients.objects.order_by('-id').filter(user_id=request.user.id)[0:10]
except User_clients.DoesNotExist:
data = None
return render(request, "client_list.html",{'title':"Client List",'clients':data,'active':'myclients','open':'clients'})
在此先多謝!
發表評論后更新:
from itertools import chain
from django.db.models import F
without_credit = User_clients.objects.filter(user=request.user, client__credits__is_null=True).annotate(credit=0)
with_credit = User_clients.objects.filter(user=request.user,
client__credits__is_null=False).annotate(credit=F("client__credits__credit"))
data = chain(without_credit, with_credit)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.