Django Serializer使用外键关系保存模型 [英] Django Serializer Save models with foreign key relationships

查看:550
本文介绍了Django Serializer使用外键关系保存模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to save a model object that has a foreign key referencing another table. Trying to write the serializer for the same, however can't wrap my head around how to do it and can't seem to find the right documentation either. My model objects:

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 模型的序列化器类:

My serializer class for RMenuCategory model:

class RestaurantMenuSerializer(serializers.ModelSerializer):

    restaurant = serializers.PrimaryKeyRelatedField()

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

带有json的api调用:

Making the api call with the json as:

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

当我尝试使用在我看来:

This is not working when I try out the following in my view:

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


推荐答案

restaurant_id 更改为 restaurant

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

这篇关于Django Serializer使用外键关系保存模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆