Một giải pháp: Tìm thấy sau đây django đoạn mà dường như làm việc tốt (http://djangosnippets.org/snippets/2445/)Các manager.urls URLconf bao gồm không có bất kỳ mô hình trong đó
from django.utils.functional import lazy
from django.core.urlresolvers import reverse
#Workaround for using reverse with success_url in class based generic views
#because direct usage of it throws an exception.
reverse_lazy = lambda name=None, *args : lazy(reverse, str)(name, args=args)
Rõ ràng, hiện nay là một reverse_lazy chức năng trong thân cây django.
Cập nhật: Lỗi này có cái gì để làm với tôi thực hiện cuộc gọi để đảo ngược bên trong một cái nhìn tổng quát:
class AddObjView(CreateView):
form_class = ObjForm
template_name = 'manager/obj_add.html'
success_url = reverse('manager-personal_objs')
Đây có phải là không hợp lệ?
Nếu tôi thay vì chung chung ghi một cái gì đó như thế này, nó hoạt động:
def add_obj(request, pk):
a=reverse('manager-personal-objs')
return HttpResponse(a)
Tôi có một dự án với 2 ứng dụng trong đó. Mỗi ứng dụng đều có các url và chế độ xem của nó. Cả hai đều làm việc tốt, nhưng trên các ứng dụng quản lý, ngay sau khi tôi tham khảo các chức năng đảo ngược trong quan điểm (xem bất kỳ), tôi nhận được lỗi sau: Loại ngoại lệ: Không đúng cấu hình Giá trị ngoại lệ: bao gồm quản lý urlconf.urls doesn ' t có bất kỳ mô hình trong đó
Các url file:
urlpatterns = patterns('',
url(r'^$', ObjView.as_view(), name='manager-obj'),
url(r'^add/$', AddObjView.as_view(), name='manager-add_obj'),
url(r'^personal/$', PersonalObjsView.as_view(), name='manager-personal_objs'),
)
Exception Location: ... trang web gói \ django \ core \ urlresolvers.py trong _get_url_patterns, dòng 283
Tôi nhận được lỗi này trong toàn bộ trang web (chỉnh sửa: điều này dường như xảy ra vì một nỗ lực để nhập manager.urls sẽ dẫn đến lỗi). Nếu tôi xóa trình quản lý include.urls, mọi thứ sẽ hoạt động trở lại; nếu tôi xóa cuộc gọi để đảo ngược, mọi thứ đều ổn; nếu tôi cố gắng viết lại manager.urls cho một phiên bản đơn giản hơn, nó tiếp tục với lỗi.
Tôi đã trải qua quá nhiều lần này, dường như không thể tìm thấy điều gì sai trái.
chỉnh sửa: root urls.py
# coding=utf8
from django.conf.urls.defaults import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.generic.simple import direct_to_template
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
# Home Page
url(r'^$', direct_to_template, {'template': 'home.html'}, name="home"),
# manager
url(r'^manager/', include('manager.urls')),
# writing
url(r'^writing/', include('writing.urls')),
)
urlpatterns += staticfiles_urlpatterns()
edit2: Cũng nên lưu ý rằng các url mẫu thẻ hoạt động tốt trong các ứng dụng quản lý và cuộc gọi ngược lại làm việc nếu tôi làm điều đó trên các ứng dụng khác. Ngoài ra, mọi url đều có chế độ xem được viết.
Bạn cũng có thể đăng gốc 'urls.py' không? –
thêm root urls.py –
Một điều tôi luôn làm với các mẫu của mình là đặt các mẫu cụ thể nhất trước tiên. Tôi sẽ đặt các mẫu trang chủ sau các mẫu tệp tĩnh và tôi sẽ đảo ngược thứ tự hoặc các mẫu manager.url của bạn. – Brandon