任何人都可以发现即时通讯出现问题的地方吗?
Django错误:
Request Method: GET
Request URL: http://127.0.0.1:8000/calendar/calendar/daily/calendar1/?year=2018&month=7&day=7
Template error:
\schedule\templates\schedule\_daily_table.html, error at line 8
Reverse for 'calendar_create_event' not found. 'calendar_create_event' is not a valid view function or pattern name.
1 : {% load scheduletags %}
2 : <table class="table table-striped">
3 : {% for slot in slots %}
4 : <tr>
5 : <td class="col-md-1">
6 : <span class="time">{{ slot.start|time:"G:i" }}</span>
7 : {% if addable %}
8 : {% create_event_url calendar slot.start %}
9 : {% endif %}
10 : </td>
11 : <td class="col-md-4">
12 : {% for occ in slot.occurrences %}
13 : <button type="button" class="btn {% if occ.cancelled %} btn-danger {%else%} btn-primary {% endif %}" data-toggle="modal" data-target="#{% hash_occurrence occ %}" {% if occ.event.color_event %} style="background-color: {{occ.event.color_event}};border-color:{{occ.event.color_event}}" {% endif %}>
14 : {% options occ %}
15 : {% title occ %}
16 : </button>
17 : {% include 'schedule/_detail.html' with occurrence=occ %}
18 : {% endfor %}
异常类型:/ calendar / calendar / daily / calendar1 /的NoReverseMatch 异常值:找不到与“ calendar_create_event”相反的值。 “ calendar_create_event”不是有效的视图函数或模式名称。
附表标签的功能:
@register.inclusion_tag('schedule/_create_event_options.html', takes_context=True)
def create_event_url(context, calendar, slot):
context.update({
'calendar': calendar,
'MEDIA_URL': getattr(settings, 'MEDIA_URL'),
})
lookup_context = {
'calendar_slug': calendar.slug,
}
context['create_event_url'] = '%s%s' % (
reverse('calendar_create_event', kwargs=lookup_context),
querystring_for_date(slot))
return context
url:
re_path(r'^event/create/(?P<calendar_slug>[-\w]+)/$',
CreateEventView.as_view(),
name='calendar_create_event'),
视图:
class CreateEventView(EventEditMixin, CreateView):
form_class = EventForm
template_name = 'schedule/create_event.html'
def get_initial(self):
date = coerce_date_dict(self.request.GET)
initial_data = None
if date:
try:
start = datetime.datetime(**date)
initial_data = {
'start': start,
'end': start + datetime.timedelta(minutes=30)
}
except TypeError:
raise Http404
except ValueError:
raise Http404
return initial_data
def form_valid(self, form):
event = form.save(commit=False)
event.creator = self.request.user
event.calendar = get_object_or_404(Calendar, slug=self.kwargs['calendar_slug'])
event.save()
return HttpResponseRedirect(event.get_absolute_url())