Đây là mẫu của tôi:DjangoRestFramework - Bỏ qua các lĩnh vực null khi serializing đối tượng
class Post(models.Model):
user = models.ForeignKey(User)
post = models.CharField(max_length=400)
country = models.ForeignKey(Country, blank=True, null=True)
và đây là serializer tôi:
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ó cách nào cho tôi để nói DRF rằng nếu giá trị của trường là null (vì trường 'country' là tùy chọn và đôi khi không được cung cấp), sau đó bỏ qua nó và chỉ cần tuần tự hóa các dữ liệu khác? Hoặc ít nhất là tuần tự hóa nó với một giá trị của Không?
Tôi không nghĩ mình có thể sử dụng SerializerMethodField (http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield) vì trường 'quốc gia' không phải là trường chỉ đọc (tôi cũng viết quá, nếu nó được cung cấp).
Tôi về cơ bản muốn bỏ qua trường (hoặc ít nhất là làm cho giá trị None) khi tuần tự hóa một đối tượng Nếu trường là null.