【发布时间】:2017-10-23 20:45:45
【问题描述】:
我的问题基于 Django 文档中给出的 this 示例。我的 models.py 看起来像这样:
class Wrestler(models.Model):
name = CharField(max_length=255)
class AlterEgo(models.Model):
name = CharField(max_length=255)
person = ForeignKey('someapp.Person', )
class Group(models.Model):
name = CharField(max_length=255)
members = models.ManyToManyField('someapp.Person', through='Membership')
class Membership(models.Model):
person= models.ForeignKey('someapp.Person',)
alter_ego = models.ForeignKey('someapp.AlterEgo', blank=True, null=True)
group = models.ForeignKey('someap.Group',)
我的群组列表模板如下所示:
{% for object in object_list %}<tbody>
<tr>
<td><a href="{{object.get_absolute_url}}">{{ object.name }}</a></td>
<td>{{ object.members.all|join:" & " }}</td>
</tr>
</tbody>{% endfor %}
如您所见,我的额外字段是“alter_ego”字段。每个人都可以有另一个自我,例如。 G。 Chris Jericho 曾经扮演 Moongoose McQueen。使用此模板,成员将被列为“Chris Jericho & Richard Ward & ...”。我的问题是我不希望 Jericho 被列为 Jericho 而是 McQueen,如果给出了另一个自我。
我想如果给定了另一个自我,我应该有一个自定义函数来替换我的人 FK,但我仍然试图绕着它转,因为我对这一切真的是个菜鸟。
如果有人能指出我正确的方向,我将不胜感激。提前致谢。
【问题讨论】:
-
你应该将 alter_ego 添加到 Person 模型中,然后修改 Person 的 str 函数,该函数应该返回正确的名称 - 如果存在则 alter_ego,否则返回 username。
-
我考虑过这个选项,但我假设一个人可以有多个改变自我,例如。 G。 Marshall Mathers 被称为 Eminen 和/或 Slim Shady,Sean Combs 被称为 Diddy、P. Diddy、Puff Daddy、Sean John,并且每个人都可以成为具有不同另一个自我的团体的一部分。
标签: python django function view django-managers