如何在基于查询集的字段上显示值?
How to display value on fields based on queryset?
我有这样一个案例:
型号
class Car(models.Model):
description = models.CharField(max_length=200)
is_available = models.BooleanField(default=False)
class Rental(models.Model):
car = models.ManyToManyField(Car)
我的问题是,如何在 is_available = True 的租赁车型上显示汽车。在 django 管理员上?
谢谢
您可以覆盖 django 管理的 get_queryset
方法 class。
通用语法->
class MyModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)
在你的情况下,这将是 -:
class RentalAdmin(admin.ModelAdmin):
def get_queryset(self,request):
qs = super().get_queryset(request)
return qs.filter(car__is_available=True)
可以参考文档here
对于 Inline 你的代码应该是 -:
class CarInline(admin.StackedInline):
model=Rental.car.through
#model=Car
def get_queryset(self,request):
qs = super().get_queryset(request)
return qs.filter(is_available=True)
class RentalAdmin(admin.ModelAdmin):
inlines=[CarInline]
你可以试试 django inline model admin
我有这样一个案例: 型号
class Car(models.Model):
description = models.CharField(max_length=200)
is_available = models.BooleanField(default=False)
class Rental(models.Model):
car = models.ManyToManyField(Car)
我的问题是,如何在 is_available = True 的租赁车型上显示汽车。在 django 管理员上? 谢谢
您可以覆盖 django 管理的 get_queryset
方法 class。
通用语法->
class MyModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)
在你的情况下,这将是 -:
class RentalAdmin(admin.ModelAdmin):
def get_queryset(self,request):
qs = super().get_queryset(request)
return qs.filter(car__is_available=True)
可以参考文档here
对于 Inline 你的代码应该是 -:
class CarInline(admin.StackedInline):
model=Rental.car.through
#model=Car
def get_queryset(self,request):
qs = super().get_queryset(request)
return qs.filter(is_available=True)
class RentalAdmin(admin.ModelAdmin):
inlines=[CarInline]
你可以试试 django inline model admin