我是新手Django开发者,我想创建一个Web应用程序,可以显示您的事件列表。您可以有几个不同的列表(例如体育赛事、生日等)。我已经创建了两个模型 - 日历(事件列表)和事件。
在我的页面上,我有导航菜单,您可以看到“日历”列表。当您单击一个日历时,您可以查看该日历的事件列表,但是我也想在侧边栏保留日历列表。
据我理解,我需要两个视图来实现这一点 - ListView(用于侧边栏日历)和DetailView(用于每个日历上的事件)。
以下是我的视图:
在我的页面上,我有导航菜单,您可以看到“日历”列表。当您单击一个日历时,您可以查看该日历的事件列表,但是我也想在侧边栏保留日历列表。
据我理解,我需要两个视图来实现这一点 - ListView(用于侧边栏日历)和DetailView(用于每个日历上的事件)。
以下是我的视图:
class DetailView(generic.DetailView):
model = Calendar
template_name = 'koledarji/detail.html'
class CalendarsView(generic.ListView):
template_name = 'koledarji/calendars.html'
context_object_name = 'calendars_list'
def get_queryset(self):
return Calendar.objects.all()
采用这种方法,我每个特定日历的详细信息都没问题,但是我失去了侧边栏导航菜单上的日历列表。
我的特定日历的url:
url(r'^(?P<pk>[0-9]+)$', views.DetailView.as_view(), name='detail'),
我的模板的一部分:
{% extends 'prijavljen/calendar.html' %}
{% block cal_name %}
{% for calendar in calendars_list %}
{% if request.path == '/prijavljen/'|add:calendar.id %}
{{calendar.name }}
{% endif %}
{% endfor %}
{% endblock %}
在那段代码之后,我想要列出一些事件,但是例如日历的名称就足以解决问题。
我曾尝试通过比较请求路径和所需日历的路径来解决该问题,但并没有成功。
任何帮助都将不胜感激。
class EventCreate(CreateView): model = Event fields = ['name', 'description'] success_url = '/prijavljen/' ... def get_context_data(self, *args, **kwargs): context = super(EventCreate, self).get_context_data(*args, **kwargs) context['calendars_list'] = Calendar.objects.all() context['calendar'] = ?????? return context
- francosy