Django Serializer使用外键关系保存模型

时间:2015-07-21 19:37:56

标签: python django django-models django-rest-framework

我正在尝试保存一个模型对象,该对象具有引用另一个表的外键。尝试编写相同的序列化程序,但无法解决如何做到这一点,并且似乎无法找到正确的文档。我的模型对象:

class Restaurant(models.Model):

    name = models.CharField(null=False, max_length=255)
    min_order = models.CharField(null=False, max_length=255)
    # And so on

class RMenuCategory(models.Model):

    category_name = models.CharField(null=False, max_length=255)
    restaurant = models.ForeignKey('Restaurant')

RMenuCategory模型的序列化程序类:

class RestaurantMenuSerializer(serializers.ModelSerializer):

    restaurant = serializers.PrimaryKeyRelatedField()

    class Meta:
        model = RMenuCategory
        fields = ('id', 'category_name', 'restaurant')

使用json进行api调用:

{ "category_name" : "Italian", "restaurant_id" : 4}

当我在我的视图中尝试以下内容时,这不起作用:

menu_cat = RestaurantMenuSerializer(data=data)
        if menu_cat.is_valid():
            category = menu_cat.save()
        else:
            exit()

1 个答案:

答案 0 :(得分:4)

restaurant_id更改为restaurant

{ "category_name" : "Italian", "restaurant" : 4}