Python django中url和模板的混乱

Python django中url和模板的混乱,python,django,Python,Django,我的网址是: 1. http://localhost:8000/docs/[slug] 2. http://localhost:8000/docs/[slug]/login 1。号码2之前的url调用。url我想发送 模板中url 2.映射到函数的slug值 我应该为form action event写些什么。我同意,这几乎是不可理解的,但我将试着给出一个答案 就调用顺序而言,没有。用户可能首先访问url2或url1。您无法保证他们将首先尝试访问哪个,因为他们可能会直接将url输入到浏览器中。

我的网址是:

1. http://localhost:8000/docs/[slug]
2. http://localhost:8000/docs/[slug]/login
1
。号码
2之前的url调用。url
我想发送 模板中
url 2.
映射到函数的
slug

我应该为form action event写些什么。

我同意,这几乎是不可理解的,但我将试着给出一个答案

就调用顺序而言,没有。用户可能首先访问url
2
或url
1
。您无法保证他们将首先尝试访问哪个,因为他们可能会直接将url输入到浏览器中。您唯一能做的就是在
request.session
的dict中设置一个变量,并用您的
登录名
url对其进行测试

就将
slug
传递到另一个url而言,如果您有一个包含此内容的url:

urls = ('',
url(r'docs/(?P<slug>\w+)', 'app.views.slug', name='slug-view'),
url(r'docs/(?P<slug>\w+)/login', 'app.views.slug_login', name='slug-login'),
#..
)
这样,当您访问slug视图时,您将一个名为slugname的变量传递到模板中,模板使用该变量与django的url库一起解析url.py中一个特定命名的url,并使用一个命名参数slug,它将为slugname赋值

我建议你试试


我可能还记得你在报纸上读到的。使用不带命名参数的正则表达式是可以接受的,但实际上不是最佳实践。我还建议将变量作为一种快速的方式传递到模板和模板本身。

我不理解你的问题。urlpatterns=patterns(“”,(r’([a-zA-Z0-9]+)/login/$,login),(r’^([a-zA-Z0-9]+)/$,slug),请更加明确…-1:不可理解。请使用实际代码更新问题。请不要在评论中发布代码。请使用实际
url.py
文件中的相关行更新问题。
<form action="{% url slug-login slugname %}" method="POST">
def slug(request, slug):
    #
    #

    return render_to_response('templatename.html', {'slugname':slug}, context_instance=RequestContext(request))

def slug_login(request, slug):
    # do something with slug.