我有兩個模型與 onetoone 關系用戶和博客。在列出用戶時,我希望用戶擁有博客。如何對用戶進行排序,以便博客用戶在串列中排在第一位,然后按用戶 ID 排在第二位?我的模型:
class User(BaseModel):
name = models.CharField(max_length=100)
class Blog(BaseModel):
user = models.OneToOneField(User, related_name='blog', null=True)
title = models.CharField(max_length=100)
我的看法:
class UserAPIView(ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
uj5u.com熱心網友回復:
您可以使用Exists子查詢:
from django.db.models import Exists, OuterRef
class UserAPIView(ListAPIView):
queryset = Movie.objects.order_by(
Exists(Blog.objects.filter(user_id=OuterRef('pk'))).desc()
)
serializer_class = UserSerializer
因此,我們確定每個User是否有Blog針對User,我們排序true前false通過利用的.desc(…)方法[Django的DOC] 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/352974.html
標籤:姜戈 django-models Django 休息框架 django-views drf-queryset
