在django中创建配置文件URL

在django中创建配置文件URL,django,url-redirection,custom-url,Django,Url Redirection,Custom Url,我正在尝试制作我的第一个Django应用程序。我制作了一个简单的表单,用户可以在其中输入用户名。当用户单击submit时,我想将其重定向到包含该用户名的url 例如,假设我的表单位于urlwww.mydomain.com/form 如果用户输入username='myname,我想将他带到urlwww.mydomain.com/myname并显示你好,我的名字,欢迎访问www.mydomain.com 你知道我怎样才能做到吗 编辑 以下是我目前正在做的事情 url.py home.html {%

我正在尝试制作我的第一个Django应用程序。我制作了一个简单的表单,用户可以在其中输入
用户名
。当用户单击submit时,我想将其重定向到包含该
用户名的url

例如,假设我的表单位于url
www.mydomain.com/form

如果用户输入
username='myname
,我想将他带到url
www.mydomain.com/myname
并显示
你好,我的名字,欢迎访问www.mydomain.com

你知道我怎样才能做到吗

编辑 以下是我目前正在做的事情

url.py home.html
{%csrf\u令牌%}
现在我的问题是,我能在URL和视图中避免这个临时部分吗?一步完成整个重定向吗

另外,我知道我需要在表单上定义一些检查。我将在稍后添加它们。当前,让我们假设用户所做的输入与url中定义的正则表达式相匹配,您需要:

  • 用于输入配置文件名称的表单类
    • name=forms.CharField(…)
    • 针对未知配置文件的
      clean\u name(self)
      方法引发
      ValidationError
  • 视图myformview
    • with显示GET请求的表单
    • 验证POST请求的表单,然后使用
      django.shortcuts.redirect
      和您的纵断面图和名称
  • 当然是你的个人资料

您需要确保以下几点:

  • 您的表单实际上正在创建配置文件记录
  • 生成表单的视图还验证其输入并保存模型记录
  • 您的配置文件模型是使用绝对url设置的,因此您可以重定向到其页面
  • 处理表单的视图然后将用户重定向到所创建模型的绝对url
  • 您已经设置了相应的
    urlpattern
    ,以便请求
    /
    指向已为纵断面模型设置的详图视图

如果你被这些步骤中的任何一个弄糊涂了,我强烈认为你会找到一个Django教程,它会吸引你并准确地跟随它。它将指导您执行上述所有步骤。

我不确定您在这方面有何困难。从表单中获取数据?重定向?什么?如果你发布一些代码可能会有帮助。到目前为止你尝试了什么?如果你不想要一个单独的临时视图,为什么不在索引视图中这样做呢?我猜你创建了一个临时应用程序?你不需要那样做。在此应用程序中,您试图实现什么目标?如果您只是想学习该语言,那么您的用例并不适合学习Django。你现在能说得更具体一点吗?答案是你必须拿到一本好的Django书,并正确地遵循这些步骤。您没有使用表单,并且没有任何类型的视图可以正确处理表单输入。没有任何有意义的方法可以让您编写的代码实现您想要的功能。相反,您需要重新开始,并使用在Django中编程时预期的框架和实践。您能更具体一点吗?如果可能,请给我确切的视图函数?
from django.conf.urls import include, url

urlpatterns = [
    url(r'^$', 'temp.views.home',name='home'),
    url(r'^temp/$', 'temp.views.temp',name='temp'),
    url(r'^entry/(?P<entry>[A-Za-z0-9_.\-~]+)','temp.views.mimic',name='mimic'),
]
    from django.shortcuts import render
    from django.http import HttpResponseRedirect,HttpResponse
    def home(request):
        return render(request,'home.html',{})

    def temp(request):
        entry=request.POST['entry']
        print entry
        return HttpResponseRedirect("/entry/"+entry)

    def mimic(request,entry):
        return HttpResponse(entry)
<form method="POST" action="/temp/">{% csrf_token %}
<INPUT name='entry'>
<input type='submit' text='done'>
</form>