我有一個模型
class Person(models.Model):
name = models.CharField(max_length=254)
和相關的序列化器
class PersonSerializer(serializers.ModelSerializer):
name = serializers.CharField(required=True, max_length=254)
class Meta:
model = Person
fields = ('name',)
有沒有辦法從模型中CharField自動檢測max_length并在驗證中使用它?
使用Person._meta.get_field('name').max_length可能是一種選擇,但在每個領域都使用起來感覺有點麻煩。也許CharField用自定義實作覆寫?或者還有其他選擇嗎?
uj5u.com熱心網友回復:
如果您想以直接的方式將模型轉換為序列化程式,您可以使用ModelSerializer. extra_kwargs您可以使用欄位 [drf-doc]向序列化器欄位的建構式注入額外的引數,因此:
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = ('name',)
extra_kwargs = {
'name': {'required': True}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/471310.html
標籤:django django-rest-framework django-序列化器
