【发布时间】:2017-10-12 04:32:15
【问题描述】:
考虑以下模型:
class Book(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=255)
publisher = models.ForeignKey('Publisher')
class Publisher(models.Model):
id = models.AutoField(primary_key=True)
publisher_name = models.CharField(max_length=255)
我想打电话给Book.objects.filter(id=123),但输出应该是:
{ 'id':123, 'title':'ABC', 'publisher':1 } 用于管理员用户,并且
{ 'id': 123, 'title':'ABC', 'publisher':'XYZ Books' } 适用于普通用户。
我的问题是,这可以用select_related() 完成还是只更改models.ForeignKey() 参数?
【问题讨论】:
-
查询时使用select_related,根据实际调用api的用户修改api响应。
-
您想要普通用户权限的发布者名称?