時,這是我的模型忽略空字段:DjangoRestFramework序列化對象
class Post(models.Model):
user = models.ForeignKey(User)
post = models.CharField(max_length=400)
country = models.ForeignKey(Country, blank=True, null=True)
,這是我的串行:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('user', 'post', 'country',)
def create(self, validated_data):
post = Post(
user = User.objects.get(username='MyUser'),
post = validated_data['post'],
)
if validated_data.get('country', None):
post.country = validated_data['country']
return post
有什麼辦法,我告訴DRF,如果價值該字段爲空(因爲「國家」字段是可選的,有時不提供),然後跳過它,只是序列化的其他數據?或者至少序列化它的值爲None?
我不認爲我可以使用SerializerMethodField(http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield),因爲'country'字段不是隻讀字段(如果提供它,我也會寫它)。
我基本上要序列化的對象時如果該字段爲空省略字段(或至少使值無)。