Django models 允许用户计划事件并将其链接到他们的帐户信息,以便在django模板中使用
我已经查看了类似问题的答案,但我无法找到适合我的情况的答案,所以我将发布我的问题。按照我的方式,当我试图获取创建事件的用户的名字时,我总是得到“无”的结果。。。因此,我有多个类的用户,我希望允许一种类型的用户能够安排事件,模板显示创建事件的用户以及与事件相关的类中的各种其他字段。例如:Django models 允许用户计划事件并将其链接到他们的帐户信息,以便在django模板中使用,django-models,django-templates,django-views,django-users,Django Models,Django Templates,Django Views,Django Users,我已经查看了类似问题的答案,但我无法找到适合我的情况的答案,所以我将发布我的问题。按照我的方式,当我试图获取创建事件的用户的名字时,我总是得到“无”的结果。。。因此,我有多个类的用户,我希望允许一种类型的用户能够安排事件,模板显示创建事件的用户以及与事件相关的类中的各种其他字段。例如: #models.py class BaseProfile(models.Model): user = models.ForeignKey(User, unique=True) first_nam
#models.py
class BaseProfile(models.Model):
user = models.ForeignKey(User, unique=True)
first_name = models.CharField(max_length=20, verbose_name=_('First Name'))
last_name = models.CharField(max_length=20, verbose_name=_('Last Name'))
...
#More common fields
#Used for when a new broadcaster registers; fields specific to broadcasters
classBroadcasterProfile(models.Model):
user_type = models.CharField(max_length=20, default="broadcaster")
...
#Other fields specific to broadcasters
#Used when a broadcaster creates a profile for themselves after they have registered
class BroadcasterAccountProfile(BroadcasterProfile):
...
#A broadcaster wants to schedule an event
class UpcomingEvents(models.Model):
title = models.CharField(max_length=50, verbose_name=_('Title'))
description = models.TextField(max_length=100, verbose_name=_('Event Description'))
instructor = models.ForeignKey(BroadcasterAccountProfile, null=True, blank=True, related_name='instructor')
event_date = models.DateField(auto_now=False, auto_now_add=False, verbose_name=_('Date of Event'))
...
#Additional info to be included with the scheduling of event
因此,在广播公司注册、创建概要文件并安排活动(所有活动均成功)后,我尝试使用以下视图来显示即将到来的计划活动:
#views.py
def upcoming_event_list(request):
today = datetime.date.today()
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
todays_events = UpcomingEvents.objects.filter(event_date=today)
tomorrows_events = UpcomingEvents.objects.filter(event_date=tomorrow)
return render_to_response('events/preview.html', {'today': today, 'tomorrow': tomorrow,
...
我可以让我的模板显示任何与即将举行的活动相关的内容,但与创建活动的广播公司相关的内容除外。我已尝试为我的观点添加价值:
def upcoming_event_list(request):
...
values = UpcomingEvents.objects.values('instructor__first_name', 'instructor__last_name', 'instructor__avatar')
#template.html
{% for v in values %}
Broadcaster Name:{{ v.instructor__first_name }}
{% endfor %}
这将显示“广播公司名称:无”。我是否完全朝着错误的方向前进,或者我能做些什么来让这一切顺利进行?抱歉,这让人困惑。我试图尽可能地把它弄清楚,但鉴于我自己是多么困惑,我不知道我在试图描述我的问题时有多成功。谢谢你的帮助。如果我需要澄清什么,请告诉我。您是否尝试过模板中的
{{{v.讲师.first_name}}
请注意
(句号/点/句点/你叫它什么)而不是\uuu
(双下划线)。我试过了,但没用。我终于想出了一个至少目前有效的解决方案,但我不确定这是最好的方法。谢谢你的帮助。我知道我没有尽力解释我的问题。你能为这个问题的未来读者解释一下答案吗?我最终做的是让它在我的模板中工作,而不是{{v.讲师.第一名}或{v.讲师.第一名},我能够使用{{v.讲师.获取个人资料.第一名}。