Helper for retrieve select options of drf fields and django-filter filters.
Project description
Drf-lookup
Drf-lookup helps you retrieve options for serializer fields and django-filter
filters. It adds additional actions to the viewset, checks the queryset
and
choices
attributes and returns valid values for the requested field/filter.
This is useful when you are retrieving parameters asynchronously and don't need
to create a view for each case.
Install
pip install drf-lookup
Example
# models
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=100, db_index=True)
class Meta:
verbose_name = 'category'
verbose_name_plural = 'categories'
ordering = ['name']
def __str__(self) -> str:
return self.name
class Article(models.Model):
title = models.CharField(max_length=100, db_index=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True)
class Meta:
verbose_name = 'news'
verbose_name_plural = 'news'
ordering = ['-pk']
def __str__(self) -> str:
return self.title
# serializers
from rest_framework.serializers import ModelSerializer
class ArticleSerializer(ModelSerializer):
class Meta:
model = Article
fields = ('id', 'title', 'category')
# filters
import django_filters
class ArticleFilterSet(django_filters.FilterSet):
class Meta:
model = Article
fields = ('category',)
# views
from rest_framework.viewsets import ModelViewSet
from drf_lookup.views import LookupMixin
class ArticleViewSet(LookupMixin, ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
filterset_class = ArticleFilterSet
Now, we can request options for the category
field:
GET /articles/lookup_serializer/?lookup_action=create&lookup_field=category
GET /articles/lookup_filterset/?lookup_action=list&lookup_field=category
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
drf_lookup-0.1.4.tar.gz
(10.0 kB
view details)
Built Distribution
File details
Details for the file drf_lookup-0.1.4.tar.gz
.
File metadata
- Download URL: drf_lookup-0.1.4.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae9779aa011e7777899cfa7de81972b6913e0c708e9db5acca6a3e25fe263b73 |
|
MD5 | f4115b3d346ebd4c2afd9295963a96cb |
|
BLAKE2b-256 | 70ccdb63aa8936b8736d4f2f3fd50ad2e71fec7686214223af59a3620199c1ed |
File details
Details for the file drf_lookup-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: drf_lookup-0.1.4-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfb60b08dea2dae56c6557d413a3f00b8d93a818037829c2d8ce56bb28870c24 |
|
MD5 | 03c7cc77a010e0ccde6cdb51c35d26d3 |
|
BLAKE2b-256 | 00f570827a82c70cd581b7079dfbb88eb59b316fde28cec49963f2fe0a7ca44f |