找不到与“ calendar_create_event”相反的内容。 'calendar_create_event'不是有效的视图函数或模式名称

时间:2018-08-10 15:55:08

标签: django django-models django-templates django-views

任何人都可以发现即时通讯出现问题的地方吗?

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())

0 个答案:

没有答案