我在DJANGO中有一个结构为这样的项目:
/
|---- core
|---- client
在客户端/视图.py中,我有代码:
class ClientDelete(DeleteView):
model = Cliente
success_url = reverse_lazy('cliente_list')
其中client_list是客户端/客户端上列出所有客户端的 HTML 页面。
在核心/视图.py模块中,我有以下功能:
def homepage(request):
return render(request, 'home.html')
其中"主页.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
时,浏览器上的 url 没有重定向到主页,而是显示如下内容:
localhost:8000/client/home
我想回到localhost:8000
的时候.
我该怎么办?
谢谢。
首先,设置 url 的名称很有用:
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 中的 url 设置一个名称。
文档:https://docs.djangoproject.com/es/1.9/topics/http/urls/#url-namespaces-and-included-urlconfs