我已经查看了发布到类似问题的答案,但我无法为我的情况找到任何工作,所以我会发布我的问题。我拥有它的方式,当我尝试获取创建事件的用户的名字时,我总是得到结果“无”......所以我有多个用户类别,我想允许一种类型的用户成为能够安排事件,模板显示创建事件的用户以及与事件相关的类中的各种其他字段。例如:
#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 %}
这将显示“广播公司名称:无”。我是否完全朝着错误的方向前进,或者我能做些什么来尝试完成这项工作?对不起,如果这令人困惑。我试图让它尽可能清楚,但看到我自己很困惑,我不知道我在试图描述我的问题时有多成功。谢谢你的帮助。如果我需要澄清任何事情,请告诉我。