Login

Serializer factory with Django Rest Framework

Author:
julio
Posted:
June 12, 2023
Language:
Python
Version:
3.2
Score:
0 (after 0 ratings)

Creates a model serializer class on the fly, just taking the model (class) as its argument.

My use case: When importing data from spreadsheets, the DRF serializers are an easy way to create model instances from a dictionary. This function saves me from creating a custom serializer each time I add a new importer.

Using __all__ is dangerous ;-)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Heres a little snippet for creating serializers on the fly:

```
from rest_framework.serializers import ModelSerializer

def serializer_factory(model):
    cls_name = f"{model.__name__}Serializer"
    return type(
        cls_name,
        (ModelSerializer,),
        {"Meta": type("Meta", (), {"model": model, "fields": "__all__"})},
    )
```

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 1 month, 1 week ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 1 month, 2 weeks ago
  3. Image compression before saving the new model / work with JPG, PNG by Schleidens 9 months ago
  4. Help text hyperlinks by sa2812 10 months ago
  5. Stuff by NixonDash 1 year ago

Comments

Please login first before commenting.