作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下设置:
模型.py
class QuoteModel(models.Model):
"""
this model stores initial information for the Quote
"""
quote_number = models.CharField(max_length=20,
unique=True,
help_text="Please use the quote number from pms",)
description = models.CharField(max_length=200,
help_text="Enter description that you might find helpful")
creator = models.ForeignKey(User)
date_created = models.DateField(auto_now_add=True)
# Serializers define the API representation.
class QuoteModelSerializer(serializers.ModelSerializer):
class Meta:
model = Quote
fields = ('id', 'quote_number', 'description', 'creator', 'date_created')
read_only_fields = ('date_created',)
class QuoteListCreateView(generics.ListCreateAPIView):
queryset = Quote.objects.all()
serializer_class = QuoteModelSerializer
permission_classes = (permissions.IsAuthenticated, )
def perform_create(self, serializer):
serializer.save(creator=self.request.user)
creator
领域
QuoteModel
在 View 的
perform_create
方法。自
QuoteListCreateView
是仅经过身份验证的 View ,因此,我不想通过
creator
在报价创建请求期间(发布到
/quotes
)。
creator
是序列化程序类的一部分,如果我没有通过创建者,发布请求将返回以下内容。
creator
发布请求中的参数可选?我无法添加
null=true
在
creator
model.py 中的字段,因为从模型的角度来看它是必需的。
creator
模型序列化程序中的属性并将 required 设置为 False 解决了该问题。
class QuoteModelSerializer(serializers.ModelSerializer):
creator = serializers.PrimaryKeyRelatedField(required=False, queryset=User.objects.all())
class Meta:
model = Quote
fields = ('id', 'quote_number', 'description', 'creator', 'date_created')
read_only_fields = ('date_created',)
最佳答案
根据您对问题的描述。具体来说:
I don't want to pass the creator during the quote create request.
class QuoteModelSerializer(serializers.ModelSerializer):
creator = serializers.PrimaryKeyRelatedField(
read_only=True,
default=serializers.CurrentUserDefault()
)
class Meta:
model = Quote
fields = ('id', 'quote_number', 'description', 'creator', 'date_created')
read_only_fields = ('date_created',)
关于django-rest-framework - Django Rest 框架 : make a serializer field not required in post data when perform create re,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289025/
我是一名优秀的程序员,十分优秀!