Django Rest Framework Получение сериализатора из модели - PullRequest
0 голосов
/ 10 февраля 2019

Я ищу способ получить сериализатор из модельного класса.Это сделано для того, чтобы я мог легко сериализовать данные модели без необходимости кодирования имени сериализатора, и я подумал, что примерно так можно сделать:

#mymodels.py
from django.db import models
import myserializers

class Model(models.Model):
  name = models.CharField(max_length=50)
  serializer = serializers.Serializer
#myserializers.py
from rest_framework import serializers
import mymodels

class Serializer(serializers.ModelSerializer):
  class Meta:
    model = mymodels.Model
    fields = ('field1', 'field2')

Модель предназначена для промежуточных отношений, и я хочуфункция, которая будет действовать примерно так:

def serialize(to_serialize):
  return type(to_serialize).serializer(to_serialize).data

Но это вызывает AttributeError из-за ошибок импорта.Я иду по этому пути совершенно неправильно?Есть ли более простой способ сделать это, или есть способ сделать эту работу, как описано выше?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 февраля 2019

Попробуйте этот способ, возможно, будет работать для вас:

class Model(models.Model):
    name = models.CharField(max_length=50)
    serializer = serializers.Serializer
    class Meta:
        serializer_class = SerailizerClassName

В этом коде сериализатор, установленный в модели, теперь используйте сериализатор в методе

def serialize(model_object):
  return model_object.__class__.Meta.serializer_class(model_object).data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...