をシリアル化するとき、ヌルフィールドを省略します:DjangoRestFrameworkこれは私のモデルであるオブジェクト
class Post(models.Model):
user = models.ForeignKey(User)
post = models.CharField(max_length=400)
country = models.ForeignKey(Country, blank=True, null=True)
、これが私のシリアライザです:私はDRFを伝えるためにのためにどのような方法があります
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
その値の場合フィールドはnullです( 'country'フィールドはオプションで、時には提供されないため)、スキップして他のデータをシリアル化しますか?または少なくともNoneの値でシリアル化しますか?
'country'フィールドは読み取り専用フィールドではないため、SerializerMethodField(http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield)を使用することはできません。
基本的には、オブジェクトをシリアル化するときにフィールドを省略したい(または少なくとも値Noneを作成する)フィールドがnullの場合。