To moja Model:DjangoRestFramework - pomiń pola zerowe kiedy szeregowania obiektów
class Post(models.Model):
user = models.ForeignKey(User)
post = models.CharField(max_length=400)
country = models.ForeignKey(Country, blank=True, null=True)
a to mój 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
Czy jest jakiś sposób dla mnie powiedzieć DRF że jeżeli wartość pole ma wartość zerową (ponieważ pole "kraju" jest opcjonalne, a czasami nie jest dostępne), a następnie pomijane i tylko serializowane są inne dane? Lub przynajmniej serializować go z wartością None?
Nie sądzę, żebym mógł użyć SerializerMethodField (http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield), ponieważ pole "country" nie jest polem tylko do odczytu (ja też to piszę, jeśli jest ono dostarczone).
Zasadniczo chcę pominąć pole (lub przynajmniej wprowadzić wartość None) podczas serializacji obiektu Jeśli pole ma wartość NULL.