我一直在尝试搜索论坛以获得答案,但搜索似乎有点棘手。
我有以下模型从django用户表中提取用户:
class trendingidea(models.Model):
iname = models.CharField(unique=True, max_length=15)
idea = models.TextField(unique=True)
submittedon = models.DateTimeField()
support = models.PositiveSmallIntegerField()
readbyadmin = models.BooleanField()
feasibilitycheck = models.BooleanField()
submittedby = models.ForeignKey(User,related_name="submitted_by")
assignedto = models.ForeignKey(User, blank=True, null=True, related_name="assignedto")
然而,当我查询数据库并提取信息时:
ti=list(trendingidea.objects.values())
print(ti)
[{'readbyadmin': False, 'id': 1, 'idea': 'cisco', 'feasibilitycheck': True, 'submittedby_id': 1, 'support': 1, 'submittedon': datetime.datetime(2017, 11, 6, 11, 8, 10, tzinfo=<UTC>), 'iname': 'cisoc', 'assignedto_id': 1}]
取代submittedby
和assignedto
,它为我submittedby_id
:1和assignedto_id
:1。
我想要用户名而不是他们的ID。 有没有办法实现这个目标?
答案 0 :(得分:4)
您可以通过引用带有__
前缀的相关字段来实现。唯一的缺点是你必须列出所有其他字段:
trendingidea.objects.values('readbyadmin',
'id',
'idea',
'submittedon',
'support',
'readbyadmin',
'feasibilitycheck',
'submittedby__name',
'assignedto__name')
请注意,您的词典将包含submittedby__name
和assignedto__name
个键。