我在DJANGO有一个这个结构的项目:
/
|---- core
|---- client
在client / views.py中,我有代码:
class ClientDelete(DeleteView):
model = Cliente
success_url = reverse_lazy('cliente_list')
其中client_list是列出所有客户端的客户端/客户端上的HTML页面。
在core / views.py模块中,我有以下功能:
def homepage(request):
return render(request, 'home.html')
“home.html”是主页。 我的主要urls.py是这样的:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^cliente/', include('clientes.urls')),
url(r'^about/', aboutpage),
url(r'^$', homepage),
]
我需要返回并在主页上建立客户端,核心和其他应用的链接。但是当我尝试将主页返回client.views.ClientDelete
时,浏览器上的网址没有重定向到主页,但显示的内容如下:
localhost:8000/client/home
当我想回到localhost:8000
时。
我该怎么办?
谢谢。
答案 0 :(得分:2)
首先,为网址设置名称很有用:
url(r'^$', homepage, name='home')
因此,对于您的代码,您应该这样做:
class ClientDelete(DeleteView):
model = Cliente
success_url = reverse_lazy('home')
如果您想重定向到主页。 如果您有不同的应用程序,也可以使用名称空间。所以你将能够做到:
# redirect to home
success_url = reverse_lazy('home')
# redirect to clients list
success_url = reverse_lazy('clients:list')
要使用它,您需要进行以下更改:
url(r'^cliente/', include('clients.urls', namespace='clients'))
并为clientes.urls中的网址设置名称。
文档: https://docs.djangoproject.com/es/1.9/topics/http/urls/#url-namespaces-and-included-urlconfs