国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

python - 編寫Django restful api,model表中有一個(gè)字段包含外鍵,前臺(tái)POST提交數(shù)據(jù)如何從這個(gè)外鍵獲取值?

瀏覽:145日期:2022-07-08 11:37:08

問題描述

各位前輩,大家好。我在編寫一個(gè)Django項(xiàng)目的接口,想將一張叫info的表通過接口放出去,給另外的平臺(tái)通過該接口可以向info表傳入數(shù)據(jù)。但是info表中的org字段與另外一張表Org是主外鍵關(guān)系,只能從Org表取值,不能自己創(chuàng)建。目前我已經(jīng)能通過url訪問接口,查看到info表的所有信息,只是在POST提交測試時(shí),org字段無法提交,一直報(bào)錯(cuò)。我想問問各位,該如何處理這個(gè)字段,該如何在serializer.py中定義InfoSerializer的創(chuàng)建方法。我是第一次編寫restful api,都是在網(wǎng)上借鑒后修改的,請多多指教。

下面是我的代碼和api接口展示

1.model設(shè)計(jì)

class Org(models.Model): name = models.CharField(verbose_name=u'組織單元', max_length=50) other = models.CharField(verbose_name=u'備注', max_length=30) class Info(models.Model): datetime = models.DateTimeField(verbose_name=u'時(shí)間',default=datetime.now) name = models.CharField(verbose_name=u'主機(jī)名稱', max_length=50) ip = models.CharField(verbose_name=u'主機(jī)地址', max_length=20) org = models.ForeignKey(Org, verbose_name=u'所屬單元') desc = models.CharField(verbose_name=u'故障描述', max_length=200) type = models.CharField(verbose_name=u'故障等級(jí)', choices=((u'嚴(yán)重',u'嚴(yán)重'),(u'告警',u'告警'),(u'提醒',u'提醒')), max_length=2)

2.serializers.py

class OrgSerializer(serializers.ModelSerializer): class Meta:model = Orgfields = (’id’,’name’)class InfoSerializer(serializers.ModelSerializer): org = OrgSerializer() class Meta:model = Infofields = (’id’,’name’,’ip’,’org’,’desc’,’type’)read_only_fields = (’org’,) def create(self, validated_data):validated_data[’org’] = self.context[’request’].orgreturn Info.objects.create(**validated_data)

3.views.py

class OrgViewSet(viewsets.ModelViewSet): queryset = Org.objects.all() serializer_class = OrgSerializer permission_classes = (permissions.IsAuthenticated,)class InfoViewSet(viewsets.ModelViewSet): queryset = Info.objects.all() serializer_class = InfoSerializer permission_classes = (permissions.IsAuthenticated,) @detail_route(renderer_classes=[renderers.StaticHTMLRenderer]) def plaintext(self, request, *args, **kwargs):model = self.get_object()return Response(repr(model))

python - 編寫Django restful api,model表中有一個(gè)字段包含外鍵,前臺(tái)POST提交數(shù)據(jù)如何從這個(gè)外鍵獲取值?

python - 編寫Django restful api,model表中有一個(gè)字段包含外鍵,前臺(tái)POST提交數(shù)據(jù)如何從這個(gè)外鍵獲取值?

問題解答

回答1:

在class Meta中添加depth = 1,然后指定相應(yīng)的字段名。

詳見官方文檔

標(biāo)簽: Python 編程
主站蜘蛛池模板: 黄在线观看网站 | 国产精品久久亚洲一区二区 | 久久午夜鲁丝片午夜精品 | 国内精品七七久久影院 | 国产精品免费_区二区三区观看 | 国产高清一级视频在线观看 | 九九国产在线视频 | 黄色三级三级三级免费看 | 日韩在线视频线视频免费网站 | 国产成人精品在线观看 | 在线视频第一页 | 一级片一区 | 欧美同性videos在线可播放 | 国产午夜精品久久理论片小说 | 杨晨晨福利视频 | 成人的天堂 | 成人毛片在线播放 | 扒开两腿猛进入爽爽视频 | 成年女人永久免费观看片 | 亚洲国产精品久久久久 | 男女无遮挡拍拍拍免费1000 | 亚洲欧美手机在线观看 | 欧美成人伊人十综合色 | 国产一级黄毛片 | 日韩精品中文字幕一区三区 | 男人精品一线视频在线观看 | 日韩精品在线一区二区 | 亚洲精品一区二区三区在 | aa国产 | 黄色不卡视频 | 免费播放欧美毛片欧美a | 美女扒开腿让男人桶 | 男人操女人逼逼视频 | 国产成人亚洲欧美三区综合 | 欧美精品做人一级爱免费 | 日韩欧美在线视频观看 | 全部毛片| 欧美一级aⅴ毛片 | 国产第一区二区三区在线观看 | 国产三级黄色片 | 一男一女的一级毛片 |