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

您的位置:首頁技術文章
文章詳情頁

python - Django ModelSerializer 如何POST提交非Models中定義、關聯表中的字段?

瀏覽:82日期:2022-06-28 10:02:35

問題描述

我在用djangorestframwork框架為app客戶端提供接口,現在遇到個問題如下,IWannaImages表外鍵IWanna表,現在我通過接口POST提交IWanna數據的時候無法獲取客戶端POST過來的到關聯表IwannaImages的信息

這是我打印的客戶端提交的數據validated_data的內容:

{u’platform’: u’ios’, u’reason’: u’u5b81u65e5u8363u6e7fu7b54u7b54u53d1u751fu7684u53d1u7ed9u6211u7684’, u’error_type’: u’u8f6fu4ef6u9519u8bef’, u’user_id’: 56, u’wanna_type’: u’u7ea0u9519u8bef’}

從打印結果來看后臺就沒接收到客戶端傳遞的images的數據,感覺是serializer這塊不對,接口這塊該如何處理呢?

models.py

class IWanna(models.Model): wanna_type = models.CharField(max_length=32, verbose_name=_('I wanna type')) scene_name = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('scene name')) city_name = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('city name')) reason = models.TextField(null=True, blank=True, verbose_name=_('wanna reason')) user_id = models.IntegerField(verbose_name=_('user id')) platform = models.CharField(max_length=32, verbose_name=_('platform')) error_type = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('error type')) image = models.ImageField(upload_to=wanna_image_upload_to, null=True, blank=True, verbose_name=_('image')) improve_type = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('improve type')) class Meta:app_label = ’people’verbose_name = _('I Wanna')verbose_name_plural = _('I Wanna') def __unicode__(self):return '{}-{}'.format(self.id, self.wanna_type)class IWannaImages(models.Model): iwanna = models.ForeignKey('IWanna', related_name='images', verbose_name=_('i wanna type')) image = models.ImageField(upload_to=wanna_image_upload_to, verbose_name=_('image'))

serializers.py

class IWannaSerializer(serializers.ModelSerializer): images = serializers.SerializerMethodField() class Meta:model = IWannafields = ( 'id', 'wanna_type', 'scene_name', 'city_name', 'reason', 'user_id', 'platform', 'error_type', 'images', 'improve_type', 'image')depth = 1 def validate(self, attrs):if attrs['platform'] not in ['ios', 'android']: raise ValidationError({'platform': 'platform not allowed'})return attrs def get_images(self, instance):data = IWannaImageSerializer(instance.images, many=True).datareturn data def create(self, validated_data):instance = super(IWannaSerializer, self).create(validated_data)try: if validated_data['images']: # traverse images from appfor i in validated_data['images']: IWannaImages.objects.create(iwanna=instance, image=i)except Exception, e: import logging logging.warn(e.message)return instance

問題解答

回答1:

class IWannaSerializer(serializers.ModelSerializer): images = serializers.SerializerMethodField() class Meta:model = IWannafields = ( 'id', 'wanna_type', 'scene_name', 'city_name', 'reason', 'user_id', 'platform', 'error_type', 'images', 'improve_type', 'image')depth = 1

class Meta多了depth=1,所以下級的列表被過濾了,你去掉試試!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产不卡毛片 | 美女超爽久久久久网站 | 亚洲系列中文字幕一区二区 | 嫩草一区二区三区四区乱码 | 日本高清不卡在线观看 | 精品欧美成人高清视频在线观看 | 欧美午夜精品一区二区三区 | 精品国产品欧美日产在线 | 国产精品毛片 | 自拍视频一区 | 欧美一区二区三区播放 | 日韩经典在线观看 | 国产精品18久久久久久久久久 | 成人在线免费 | 在线观看日本免费视频大片一区 | 亚洲高清在线观看看片 | 国产呦在线观看视频 | 欧美jlzz18性欧美 | 三级网站免费观看 | 亚洲美女视频免费 | 在线观看亚洲精品国产 | 欧美+日本+国产+在线观看 | 国产精品1区2区 | 亚洲99久久久久综合 | 夜夜躁狠狠躁日日躁2021 | 俄罗斯aa毛片极品 | 二级毛片在线播放 | 欧美日韩中文字幕在线观看 | 国产一区二区中文字幕 | 久久精品亚洲一级毛片 | 免费一级在线观看 | 高清一区二区三区四区五区 | 成人免费一区二区三区在线观看 | 91精品国产综合久久久久久 | 免费乱淫视频 | 亚洲国产精品一区二区三区久久 | 一级毛片一级毛片一级毛片 | 国产精品不卡 | 91久久亚洲精品一区二区 | 奶交性视频欧美 | 国产精品麻豆一区二区三区v视界 |