Django url 处理?

发布于 2024-11-09 02:22:26 字数 282 浏览 0 评论 0原文

将 url 文件解耦到我们的应用程序后,我们面临问题:

示例:

http://www.oursite.com /ourprefix/xyz/wsz

  1. 如何处理模板中的网址(以适应网址中的任何前缀(ourprefix))
  2. 如何在没有硬编码网址的情况下执行 HttpResponseRedirect (这里也存在前缀问题)

After decoupling url file to our app we are facing problem:

Example:

http://www.oursite.com/ourprefix/xyz/wsz

  1. How to handle urls in template ( to accomodate for any prefix(ourprefix) in url)
  2. How to do HttpResponseRedirect without hard-coded urls (also outprefix problem is present here)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陌生 2024-11-16 02:22:26

urls.py命名 url代码>.

  1. 使用 {% url name %}< /a> 模板标签。它将插入正确的路径。
  2. 使用 reverse('name', **kwargs)用于重定向。

一个例子:

在 proj/urls.py 中:

patterns = patterns('',
   (r'^prefix/', include('proj.app.urls') ),
)

在 proj/app/urls.py 中:

patterns = patterns('',
    url(r'object/^(?P<pk>\d+)/edit/', edit_object_view, name="edit"),
)

在 proj/app/views.py 中:

return HttpResponseRedirect(reverse('app:edit', {'pk':pk}))

在 proj/app/templates/app/my_template.py 中:

<a href="{% url app:edit pk=pk %}"> <!-- generates /prefix/object/123/edit/ -->

Use named urls in urls.py.

  1. Use the {% url name %} template tag. It will insert the correct path.
  2. Use reverse('name', **kwargs) for the redirect.

an example:

in proj/urls.py:

patterns = patterns('',
   (r'^prefix/', include('proj.app.urls') ),
)

in proj/app/urls.py:

patterns = patterns('',
    url(r'object/^(?P<pk>\d+)/edit/', edit_object_view, name="edit"),
)

in proj/app/views.py:

return HttpResponseRedirect(reverse('app:edit', {'pk':pk}))

in proj/app/templates/app/my_template.py:

<a href="{% url app:edit pk=pk %}"> <!-- generates /prefix/object/123/edit/ -->
帅气尐潴 2024-11-16 02:22:26

如果我理解正确的话,您想将特定视图解析为模板内的 URL 吗?

您应该使用 Django 中的 url-reverse 方法。请参阅此处

1) 对于模板,您可以使用:

<a href="/path/to/{{prefix}}/xyz"> Link </a>

其中“前缀”是您传递给模板的上下文中设置的变量。您还可以动态选择正确的 URL:

{% url application.views.viewfunc parameter1 parameter2 %}

请参阅此处< /a> 了解更多详细信息。

2)所以对于HttpResponseRedirect,你可以这样做:

HttpResponseRedirect(reverse(your_view_function))

它也接受参数。

If I understand you right, you want to resolve a particular view to a URL inside the template?

You should use the url-reverse method in Django. See here.

1) For the template, you can use:

<a href="/path/to/{{prefix}}/xyz"> Link </a>

Where the "prefix" is a variable set in your Context that you pass to the template. You can also dynamically pick the right URL:

{% url application.views.viewfunc parameter1 parameter2 %}

See here for more details.

2) So to HttpResponseRedirect, you can do:

HttpResponseRedirect(reverse(your_view_function))

It also accepts parameters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文