Как отобразить значение в полях на основе набора запросов?

У меня такой случай : Модели

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

Вернуться на верх