【问题标题】:Return and link to homepage django返回并链接到首页django
【发布时间】:2016-03-02 13:09:15
【问题描述】:

我在 DJANGO 有一个具有这种结构的项目:

/
|---- core
|---- client

在 client/views.py 中,我有代码:

class ClientDelete(DeleteView):
    model = Cliente
    success_url = reverse_lazy('cliente_list')

其中 client_list 是 client/clients 上列出所有客户端的 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 时,浏览器上的 url 并没有重定向到主页,而是显示如下内容:

localhost:8000/client/home 当我想回到localhost:8000

我该怎么办?

谢谢。

【问题讨论】:

  • 将它们链接到主页而不是 cliente_list 还不够吗?

标签: python django


【解决方案1】:

首先,为 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多