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.
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.2.tar.gz
(9.8 kB
view details)
Built Distribution
File details
Details for the file drf_lookup-0.1.2.tar.gz
.
File metadata
- Download URL: drf_lookup-0.1.2.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cea7c2652f1c79d7c7c1a70a53033c5df35c82dcce544adca3e6fb697db51370 |
|
MD5 | 155b2039503c1acdcc1434906ae60fa3 |
|
BLAKE2b-256 | 5cae2d4598ef9f13de43ef1a7219689f6942e85088521e8eefdc6591c45a57de |
File details
Details for the file drf_lookup-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: drf_lookup-0.1.2-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 | 27441f229f8183de69a7d9da70ed3fc65b3bb7ad5177a19d27aab158bba3a88d |
|
MD5 | aa12482223812aa40caad1373a0cd2c8 |
|
BLAKE2b-256 | d2f8ebb3db88569863b60fe916d450b9c33c4deb9a55914795357f4d659552ba |