【发布时间】:2016-05-17 09:11:51
【问题描述】:
我按照上个月视图 (https://docs.djangoproject.com/en/1.9/ref/class-based-views/generic-date-based/) 上的说明进行操作,但它并没有完全显示上个月的网址。
在我的索引页面上,我以特定格式显示当前事件,然后我在顶部有即将到来的和上一个的链接,前一个转到不同的模板,我试图加载前一个月的视图。
如您所见,错误在于网址,我不太确定如何正确获取网址
urls.py
from django.conf.urls import url
from . import views
from maintenance.views import EventMonthArchiveView
app_name = 'maintenance'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^previous/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/$',
EventMonthArchiveView.as_view(month_format='%m'),
name="previous"),
url(r'^upcoming$', views.upcoming, name='upcoming'),
views.py
from django.views.generic.list import ListView
from django.shortcuts import get_object_or_404, render, render_to_response
from django.http import HttpResponse
from datetime import date, datetime, timedelta, time
from django.views.generic.dates import MonthArchiveView
from .models import Maintenance
from .models import MaintenanceType
from .models import ServiceType
# Create your views here.
def index(request):
today = date.today()
ObjMaintenance = Maintenance.objects.filter(StartTime__gt=today)
return render(request, 'maintenance/index.html', {'Maintenance': ObjMaintenance,})
class EventMonthArchiveView(MonthArchiveView):
queryset = Maintenance.objects.all()
date_field = "StartTime"
allow_future = False
index.html
{% extends 'home/base.html' %}
{% block content %}
<h2>IT Maintenance Schedule</h2>
<div id="page-content-header">
<div class="float-left">
<a href="{% url 'maintenance:previous|date:"F Y"' %}"><< Previous Maintenance</a>
</div>
<div class="float-middle">
<a href="{% url 'maintenance:index' %}">Maintenance Today</a>
</div>
<div class="float-right">
<a href="{% url 'maintenance:upcoming' %}">Upcoming Maintenance >></a>
</div>
</div>
<div class='clear'> </div>
<div id='content-body'>
{% for event in Maintenance %}
<p>
{{ event.Title }}
</p>
{% empty %}
<p>There is no maintenance scheulded for today.</p>
{% endfor%}
</div>
{% endblock %}
错误
u'previous|date' is not a registered namespace inside 'maintenance'
Request Method: GET
Request URL: http://it.wrenkitchens.com/maintenance/
Django Version: 1.9.6
Exception Type: NoReverseMatch
Exception Value:
u'previous|date' is not a registered namespace inside 'maintenance'
【问题讨论】:
-
我不确定您要在这里做什么。直接的错误是因为您在引号内有过滤器,但即使您将其取出也不起作用;你想格式化什么日期?
-
@DanielRoseman 我只想将上个月的动态发送到视图
-
您是指从今天开始的最后一个月?
-
@DanielRoseman 是的,谢谢