Django URL 配置错误
Django URL conf error
当我尝试使用反向或 reverse_lazy 时收到以下消息:
The included URLconf 'ph.urls' does not appear to have any patterns in
it. If you see valid patterns in the file then the issue is probably
caused by a circular import
当我使用 url(不使用 reverse 或 reverse lazy)时没有问题。我尝试了不同的 url 组合,结果相同
我做错了什么?
ph 是项目。在项目中,我包含了应用程序的 url:
from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^account/', include('accounts.urls', namespace='accounts')),
url(r'^companies/', include('companies.urls', namespace='companies')),
url(r'^products/', include('products.urls', namespace='products')),
url(r'^admin/', admin.site.urls),
]
# debug toolbar
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
涉及的应用:
1) 帐户:
from django.conf.urls import url
from .views import AccountDetailView
urlpatterns = [
url(r'$', AccountDetailView.as_view(), name='dashboard'),
2) 产品:
class ProductCreateView(AccountMixin, CreateView):
model = Product
form_class = ProductModelForm
url = reverse_lazy('accounts:dashboard')
url2 = reverse_lazy('products:list')
#print(url)
template_name = 'accounts/product_form.html'
#success_url = reverse_lazy('accounts:product_detail')
我解决了问题;
我在里面使用了 get_success_url() 调用 reverse()。
reverse_lazy 没有用,因为必须为 url 传递 kwargs,我忘记了。
def get_success_url(自我):
return反向('accounts:product_detail',kwargs={'pk':self.object.pk})
当我尝试使用反向或 reverse_lazy 时收到以下消息:
The included URLconf 'ph.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import
当我使用 url(不使用 reverse 或 reverse lazy)时没有问题。我尝试了不同的 url 组合,结果相同
我做错了什么?
ph 是项目。在项目中,我包含了应用程序的 url:
from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^account/', include('accounts.urls', namespace='accounts')),
url(r'^companies/', include('companies.urls', namespace='companies')),
url(r'^products/', include('products.urls', namespace='products')),
url(r'^admin/', admin.site.urls),
]
# debug toolbar
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
涉及的应用:
1) 帐户:
from django.conf.urls import url
from .views import AccountDetailView
urlpatterns = [
url(r'$', AccountDetailView.as_view(), name='dashboard'),
2) 产品:
class ProductCreateView(AccountMixin, CreateView):
model = Product
form_class = ProductModelForm
url = reverse_lazy('accounts:dashboard')
url2 = reverse_lazy('products:list')
#print(url)
template_name = 'accounts/product_form.html'
#success_url = reverse_lazy('accounts:product_detail')
我解决了问题;
我在里面使用了 get_success_url() 调用 reverse()。
reverse_lazy 没有用,因为必须为 url 传递 kwargs,我忘记了。
def get_success_url(自我): return反向('accounts:product_detail',kwargs={'pk':self.object.pk})