gpt4 book ai didi

django-rest 忽略某些对象的某些字段

转载 作者:行者123 更新时间:2023-12-04 04:46:34 24 4
gpt4 key购买 nike

我遇到了休息框架的问题,我什至不确定这是否是正确的方法。我有以下型号

class Post(models.Model):
user = models.ForeignKey(User)

created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
date = models.DateTimeField(auto_now=True)

show = models.BooleanField(default=True)

title = models.CharField(max_length=100, blank=True, null=True)
body = models.TextField(null=True, blank=True)
role = models.IntegerField(max_length=1, choices=POST_OPTIONS, default=1)
image = models.ImageField(upload_to="photos", blank=True, null=True)
s3Url = models.URLField(blank=True, null=True)
tags = TaggableManager()

以及以下用于休息框架的序列化程序
class PostSerializer(serializers.HyperlinkedModelSerializer):
image_url = serializers.Field(source='get_imgage_url')
image_file = serializers.ImageField()
role = serializers.Field(source='get_role')

class Meta:
model = Post

fields = ('url', 'user', 'created', 'updated', 'date', 'show', 'title', 'body', 'role', 'image_url', 'image')
read_only_fields = ('user', 'created', 'updated')

所以有两种帖子......图片和文字帖子。如果帖子中没有图片,我不想显示图片或图片网址。

我不知道如何让休息框架做到这一点。

感谢您的帮助!

最佳答案

是的 get_serializer_class() 方法真的很容易覆盖。如果它是一个获取请求,这是我如何将它用于特殊序列化程序。只需将其放入您的模型 View 中即可。

def get_serializer_class(self):
if self.request.method == "GET":
return ProductGetSerializer
return ProductSerializer

关于django-rest 忽略某些对象的某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18082009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com