私はDjangoを初めて使用しています。あなたのイベントのリストを表示するWebアプリケーションを作成したいと思います。いくつかの異なるリスト(スポーツイベント、誕生日など)を持つことができます。私は2つのモデル - カレンダー(イベントのリスト)とイベントを作った。Django - DetailViewとListViewを組み合わせる
私のページには、「カレンダー」のリストが表示されているナビゲーションメニューがあります。あるカレンダーをクリックすると、そのカレンダーの予定一覧が表示されますが、サイドバーにカレンダーの一覧を残したいと思います。
私はDjangoを理解しているので、ListView(サイドバーカレンダー用)とDetailView(各カレンダー上のイベント用)の2つのビューが必要です。ここで
が私の見解です:
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()
そのアプローチでは、すべての特定のカレンダーに私の詳細はOKですが、私はサイドバーのナビゲーションメニューのカレンダーの私のリストを失います。
私の特定のカレンダーの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 %}
そのコードの後、私はイベントのリストを作成したいのですが、カレンダーの例についても、名前解決するのに十分でなければなりません。
request.pathとpath od calendarを比較して解決しようとしましたが、動作しません。
ご協力いただければ幸いです。
ありがとうございます! CreateViewで同じことをする方法はありますか? 'class EventCreate(CreateView):model =イベントフィールド= ['name'、 'description'] success_url = '/ prijavljen /' ... def get_context_data(self、* args、**)コンテクスト['calendars_list'] = Calendar.objects.all()context ['calendar'] = ??????コンテキストを返す – francosy