如何在DRF中为创建和查看操作定义具有嵌套的公共序列化程序?

时间:2015-01-01 10:04:31

标签: python django django-rest-framework

我有这些模特。

class Salon(models.Model):
    salon_name= models.CharField(max_length=250,null=False,blank=False,unique=True)
    ...

class Review(models.Model):
    salon = models.ForeignKey(Salon,null=False,blank=False)
    user = models.ForeignKey(User,null=False,blank=False)
    ...

我已经将序列化器定义如下。

class SalonSerializer(serializers.ModelSerializer):
    class Meta:
        model = Salon
        fields = ('id', 'salon_name', 'address_line1', 'land_mark', 'area', 
              'price_range', 'email_id', 'is_mail_id_verified', 
              'salon_type', 'rating', 'parking_available', 'latitude', 
              'longitude')

class ReviewSerializer(serializers.ModelSerializer):
    salon = SalonSerializer()
    class Meta:
        model = Review
        fields = ('id', 'salon', 'stylist', 'rating', 'review_text', 'user')

我对ListAPIView,CreateAPIView和UpdateAPIView使用相同的审查序列化程序。在创建和更新时,请求期望完整的沙龙字典,而它只是一个外键。

请建议是否有任何解决方法或如何对此类案件进行建模。

0 个答案:

没有答案