午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

python - Django ModelSerializer 如何POST提交非Models中定義、關(guān)聯(lián)表中的字段?

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

問(wèn)題描述

我在用djangorestframwork框架為app客戶(hù)端提供接口,現(xiàn)在遇到個(gè)問(wèn)題如下,IWannaImages表外鍵IWanna表,現(xiàn)在我通過(guò)接口POST提交IWanna數(shù)據(jù)的時(shí)候無(wú)法獲取客戶(hù)端POST過(guò)來(lái)的到關(guān)聯(lián)表IwannaImages的信息

這是我打印的客戶(hù)端提交的數(shù)據(jù)validated_data的內(nèi)容:

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

從打印結(jié)果來(lái)看后臺(tái)就沒(méi)接收到客戶(hù)端傳遞的images的數(shù)據(jù),感覺(jué)是serializer這塊不對(duì),接口這塊該如何處理呢?

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

問(wèn)題解答

回答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,所以下級(jí)的列表被過(guò)濾了,你去掉試試!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久亚洲综合色 | 99精品在线免费观看 | 五月天综合 | 国产精品区二区三区日本 | 超碰公开在线观看 | 久操资源在线 | 五月激情丁香婷婷 | 91麻豆影视 | 欧美一级二级三级视频 | 中文字幕在线观看1 | 黄色网页在线免费观看 | 日韩精美视频 | 欧美成人三级在线观看 | 不戴套各种姿势啪啪高素质 | 国产精品美女久久久久久 | 欧美男人的天堂 | 日本毛片在线 | 成人性视频免费看 | jizz日韩| 久久久三级 | 国产91在线免费观看 | 大地av | 亚洲三级国产 | 超碰蜜桃| 99热这里只有精品首页 | 亚洲区一区二区 | 国产青青视频 | 在线观看国产91 | 亚洲一区精品在线 | 午夜看片网 | 国产69精品久久久 | 国产精品欧美在线 | 国产50页 | 撕开她情趣内裤让她呻吟视频 | 国产成人精品白浆久久69 | 日本成人一区 | 成人午夜高清 | 国产日比视频 | 中文在线免费视频 | 日韩中文在线播放 | 欧美一区二区三区啪啪 |