我正在尝试拥有一个团队模型,并希望能够在我的项目中访问其字段,就像您在任何地方使用{{user.username}}
一样。
在这里,我已经把我的团队模型。
class Team(models.Model):
name = models.CharField(max_length=25)
manager = models.ForeignKey(User)
coin = models.IntegerField(default=50000)
gem = models.IntegerField(default=0)
motivation = models.IntegerField(default=100)
fans_satisfaction = models.IntegerField(default=100)
time_created = models.DateTimeField(auto_now_add=True)
感谢任何帮助,谢谢
答案 0 :(得分:2)
如果要在模板中使用它,请编写上下文处理器。 https://docs.djangoproject.com/en/1.8/ref/templates/api/#writing-your-own-context-processors
如果您想根据要求提供,则必须编写自己的中间件。 https://docs.djangoproject.com/en/1.8/topics/http/middleware/#writing-your-own-middleware
答案 1 :(得分:2)
你不需要任何特别的东西。正如你所说,Team有一个ForeignKey to User:这意味着你可以随时访问用户所在的团队:
{{ user.team_set.all }}
请注意,与您所说的相反,用户没有单一的团队:朝这个方向的FK意味着一个用户可以拥有许多团队。
答案 2 :(得分:0)
您可以在模块myapp.context_processors.py
def team(request):
team = None
if request.user.is_authenticated():
try:
# fetch the team managed by the logged in user
team = Team.objects.get(manager=request.user)
except (Team.DoesNotExist, Team.MultipleObjectsReturned):
pass
return {'team': team}
将myapp.context_processors.team
添加到设置中的上下文处理器列表中。然后,在您的模板中,您可以访问{{ team }}
。