В классе OfferSerializer отсутствует атрибут "Meta.model"
Я пытался создать приложение для управления предложениями в Django rest framework. Поэтому я сделал следующий серилизатор
class OfferSerializer(serializers.ModelSerializer):
class Meta:
fields = {
'id'
'Name'
'valid_from'
'valid_to'
'is_disabled'
}
fields = '__all__'
и когда я передал следующее в формате jason
{
"id":1,
"Name" : "Discount Offer",
"valid_from":"2021-05-21",
"valid_from":"2021-08-21",
"is_disabled":1
}
Но я получаю ошибку :- Class OfferSerializer missing "Meta.model" attribute В приведенном выше коде я создал мета-модель, но все же почему я получаю эту ошибку?
Если у вас нет модели, связанной с сериализатором, то переключитесь с serializers.ModelSerializer
на serializers.Serializer
Кроме того, в вашем коде Meta.fields стоит set
, возможно, это тоже работает, но в документации они используют list
так:
['id', 'Name', 'valid_from', 'valid_to', 'is_disabled']
Когда вы используете атрибут fields
класса Meta в сериализаторе или наследуете от serializers.ModelSerializer
, это означает, что вы пишете сериализатор для существующей модели.
Если у вас нет предопределенной модели и вам нужен сериализатор, используйте классический способ следующим образом :
from rest_framework import serializers
class OfferSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField(max_length=200)
valid_from = serializers.DateTimeField()
valid_to = serializers.DateTimeField()
is_disabled = serializers.BooleanField(default=False)
NB: Вы сами должны проверить уникальность ограничения на ID.