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.5.tar.gz
(10.0 kB
view details)
Built Distribution
File details
Details for the file drf_lookup-0.1.5.tar.gz
.
File metadata
- Download URL: drf_lookup-0.1.5.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 | 5f64b8cca973a3888527d01dfbef89eefb9894d5e1026236577a9ee441e29d5d |
|
MD5 | 1fd6349afe20e9858067027e6ce7ea70 |
|
BLAKE2b-256 | de816a364ca42f5e1f64797e50333240f3f97d24004876608aa59872ca299c09 |
File details
Details for the file drf_lookup-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: drf_lookup-0.1.5-py3-none-any.whl
- Upload date:
- Size: 13.5 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 | f1c3e13c40319fe6cebcc6564bac258e3eef2f60afb44b3b56ea834bad45c127 |
|
MD5 | 6c4c7f8dcdb16f8593912d3ac0d29ad3 |
|
BLAKE2b-256 | c3ab28f260ab8085e3327f4306116105c7c7695a7317bfcab9b4eb0629fd3e02 |