Questo è il mio modello:DjangoRestFramework - Omettere campi nulli durante la serializzazione di oggetti
class Post(models.Model):
user = models.ForeignKey(User)
post = models.CharField(max_length=400)
country = models.ForeignKey(Country, blank=True, null=True)
e questo è il mio serializer:
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
C'è un modo per me dire DRF che se il valore di il campo è nullo (perché il campo 'Paese' è facoltativo e talvolta non è fornito) quindi per saltare e semplicemente serializzare gli altri dati? O almeno serializzarlo con un valore di None?
Non penso di poter utilizzare SerializerMethodField (http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield) perché il campo "Paese" non è un campo di sola lettura (anch'io lo scrivo, se fornito).
Fondamentalmente voglio omettere il campo (o almeno rendere il valore None) durante la serializzazione di un oggetto Se il campo è nullo.