Django serializers只返回外键id

models.py

class Person(models.Model):
    name = models.CharField(max_length=128)
    num = models.IntegerField(blank=True,default=0)
    
class Expression(models.Model):
    text = models.CharField(max_length=280,blank=True)
    towhom = models.ForeignKey(Person,related_name="towhom")
    fromwhom = models.ForeignKey(Person,related_name="fromwhom")

views.py

def Update(req,id):
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(serializers.serialize('json', Expression.objects.filter(pk__gt=id)))
    return HttpResponse(response)

返回结果

[{"fields": {"towhom": 2, "text": "312312",  "fromwhom": 4}, "model": "items.expression", "pk": 32}]

我想返回对用Person模型的名字,这要怎么弄?

阅读 7.2k
3 个回答

clipboard.png

题外:既然题主用到了django-rest-framework,为什么不试一下mixins.UpdateModelMixin

看来只能自己写序列化函数来解决了

新手上路,请多包涵

django.core.serializers ————如果只想要序列化一部分字段,可以为序列化程序指定字段参数,
添加一下fields,把想要返回的字段添加进去。

from django.core import serializers
data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size'))
在本示例中,只有每个模型的名称和尺寸属性都将被序列化。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题