Discussions

Ask a Question
Back to All

How to filter queryset of a model in APIViewSet?

My code snippets:


class Driver(BaseModel):
    user = models.OneToOneField(
        User, on_delete=models.CASCADE, related_name="driver", verbose_name=_("User")
    )
    passport_verification = models.CharField(
        max_length=20,
        choices=ModerationMethod.choices,
        default=ModerationMethod.UNFILLED,
        verbose_name=_("Passport verification"),
    )
    driver_license_verification = models.CharField(
        max_length=20,
        choices=ModerationMethod.choices,
        default=ModerationMethod.UNFILLED,
        verbose_name=_("Driver's License verification"),
    )
    profile_verification = models.CharField(
        max_length=20,
        choices=ModerationMethod.choices,
        default=ModerationMethod.UNFILLED,
        verbose_name=_("Profile verification"),
    )
    is_active = models.BooleanField(default=True, verbose_name=_("Is Active"))
    is_verified = models.BooleanField(default=False, verbose_name=_("Is verified"))


class PendingDriver(Driver):
    class Meta:
        proxy = True
from ninja import Router

from ninja_crud import views, viewsets

from apps.users.models import PendingDriver
from .schemas import PendingDriverSchemaIn, PendingDriverSchemaOut


router = Router()


class PendingDriverViewSet(viewsets.APIViewSet):
    router = router
    model = PendingDriver

    default_request_body = PendingDriverSchemaIn
    default_response_body = PendingDriverSchemaOut

    # Define all CRUD operations with minimal code
    list_drivers = views.ListView()
    read_driver = views.ReadView()
    update_drivers = views.UpdateView()
    delete_drivers = views.DeleteView()


So how can i filter the PendingDriver model's objects like PendingDriver.objects.filter(is_verified=False) ?