我一直在嘗試在 Django rest 框架中構建報價管理應用程式。所以我做了以下serilizer
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 缺少“Meta.model”屬性 在上面的代碼中,我創建了元模式;但仍然為什么我收到那個錯誤?
uj5u.com熱心網友回復:
如果您沒有與序列化程式關聯的模型,則切換serializers.ModelSerializer到serializers.Serializer
此外,您的 Meta.fields 是set您的代碼中的一個,也許這也有效,但在檔案中他們使用的list是這樣的:
['id', 'Name', 'valid_from', 'valid_to', 'is_disabled']
uj5u.com熱心網友回復:
當您在序列化程式中使用Meta類的fields屬性或從 繼承時,這意味著您正在為現有模型撰寫序列化程式。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)
注意:驗證ID上的唯一約束取決于您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/351082.html
