我试图在我的Django站点上创建两个额外的页面,我创建了第一个没有问题的页面(calendar.html),但是当我尝试创建第二个页面(actionplan.html)时,它没有给我任何错误,但是当我访问xxx/actionplan.html时,它显示calendar.html页面。。。我无法访问xxx/actionplan.html
这是my url.py:
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from django.views.generic import TemplateView
from django.views.generic.detail import DetailView
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
url(r'xxx', TemplateView.as_view(template_name="calendar.html")),
url(r'^xxx/$', DetailView.as_view(template_name="actionplan.html")),
url(r'^admin/', admin.site.urls),
url(r'^', include('blog.urls'), name="Blog"),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
这是我的观点.py:
from django.views import generic
from .models import Post
class PostList(generic.ListView):
queryset = Post.objects.filter(status=1).order_by('-created_on')
template_name = 'index.html'
class PostDetail(generic.DetailView):
model = Post
template_name = 'post_detail.html'
class Calendar(generic.DetailView):
model = Post
template_name = 'calendar.html'
class Planoacao(generic.DetailView):
model = Post
template_name = 'actionplan.html'
我试过:
url(r'^xxx/$', DetailView.as_view(template_name="actionplan.html")),
url(r'^xxx', DetailView.as_view(template_name="actionplan.html")),
url(r'^xxx$', DetailView.as_view(template_name="actionplan.html")),
url(r'xxx', DetailView.as_view(template_name="actionplan.html")),
我现在真的没有主意了。。。有人能发现问题吗
你给了他们相同的url,基本上,
yoursite.com/xxx
,你可以重新排序,把斜杠放在第一位,可能起作用,但是如果你使用django的APPEND_SLASH
设置,那将是一场噩梦要修复,请使您的URL唯一
actionplan.html
与您的url无关,它的“工作”只是因为日历的regex只是在给定url中寻找xxx
问题是,在
urlpatterns
中,同一个url放了两次:您应该为这两个视图添加不同的url
而且您应该使用
path
no url,而不是两者都使用相关问题 更多 >
编程相关推荐