Как отобразить значение в полях на основе набора запросов?
У меня такой случай : Модели
class Car(models.Model):
description = models.CharField(max_length=200)
is_available = models.BooleanField(default=False)
class Rental(models.Model):
car = models.ManyToManyField(Car)
Мой вопрос в том, как отобразить автомобиль в модели Rental с is_available = True. В админке django? Спасибо
Вы можете переопределить get_queryset метод класса django admin.
Общий синтаксис для that->
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)
Вы можете обратиться к документации здесь
Для 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