您好!欢迎来到聚码网

聚码网

热门搜索: 相亲小程序    搭子源码    直播系统自有商城   
  • python-DjangoModelSerializer如何POST提交非Models中定义、关联表中的字段?
  • 聚码交流
  • 0 1
  • yhuxAvNbtxUM
    0000-00-00 00:00:00
  • 回帖
我在用djangorestframwork框架为app客户端提供接口,现在遇到个问题如下,IWannaImages表外键IWanna表,现在我通过接口POST提交IWanna数据的时候无法获取客户端POST过来的到关联表IwannaImages的信息这是我打印的客户端提交的数据validated_data的内容:{u'platform':u'ios',u'reason':u'\u5b81\u65e5\u8363\u6e7f\u7b54\u7b54\u53d1\u751f\u7684\u53d1\u7ed9\u6211\u7684',u'error_type':u'\u8f6f\u4ef6\u9519\u8bef',u'user_id':56,u'wanna_type':u'\u7ea0\u9519\u8bef'}从打印结果来看后台就没接收到客户端传递的images的数据,感觉是serializer这块不对,接口这块该如何处理呢?models.pyclassIWanna(models.Model):wanna_type=models.CharField(max_length=32,verbose_name=_("Iwannatype"))scene_name=models.CharField(max_length=128,null=True,blank=True,verbose_name=_("scenename"))city_name=models.CharField(max_length=128,null=True,blank=True,verbose_name=_("cityname"))reason=models.TextField(null=True,blank=True,verbose_name=_("wannareason"))user_id=models.IntegerField(verbose_name=_("userid"))platform=models.CharField(max_length=32,verbose_name=_("platform"))error_type=models.CharField(max_length=128,null=True,blank=True,verbose_name=_("errortype"))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=_("improvetype"))classMeta:app_label='people'verbose_name=_("IWanna")verbose_name_plural=_("IWanna")def__unicode__(self):return"{}-{}".format(self.id,self.wanna_type)classIWannaImages(models.Model):iwanna=models.ForeignKey("IWanna",related_name="images",verbose_name=_("iwannatype"))image=models.ImageField(upload_to=wanna_image_upload_to,verbose_name=_("image"))serializers.pyclassIWannaSerializer(serializers.ModelSerializer):images=serializers.SerializerMethodField()classMeta:model=IWannafields=("id","wanna_type","scene_name","city_name","reason","user_id","platform","error_type","images","improve_type","image")depth=1defvalidate(self,attrs):ifattrs["platform"]notin["ios","android"]:raiseValidationError({"platform":"platformnotallowed"})returnattrsdefget_images(self,instance):data=IWannaImageSerializer(instance.images,many=True).datareturndatadefcreate(self,validated_data):instance=super(IWannaSerializer,self).create(validated_data)try:ifvalidated_data["images"]:#traverseimagesfromappforiinvalidated_data["images"]:IWannaImages.objects.create(iwanna=instance,image=i)exceptException,e:importlogginglogging.warn(e.message)returninstance
最近热帖
近期热议
联系我们
Q Q:317563994
电话:400-000-000
邮箱:317563994@qq.com
时间:09:00 - 17:00