Django serializers只返回外键id

发布于 2022-09-01 22:41:01 字数 889 浏览 24 评论 0

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模型的名字,这要怎么弄?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你不是我要的菜∠ 2022-09-08 22:41:02

clipboard.png

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

a√萤火虫的光℡ 2022-09-08 22:41:02

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

燃情 2022-09-08 22:41:02

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文