1
我遇到了rest-framework的問題我甚至不確定這是否是正確的方式。我有以下型號django-rest忽略某些對象的某些字段
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')
以下串行所以有2種職位..一個圖像和文本後。如果帖子中沒有圖像,我不想顯示圖像或image_url。
我無法弄清楚如何使rest-framework做到這一點。
感謝您的幫助!
一種選擇是編寫兩個不同的串行器。在你的視圖中,你可以重寫get_serializer_class()方法來根據是否有圖像進行選擇。 –
謝謝..我不知道這個功能,所以我會看看它 – Mike