Django:HTML表单提交给调用函数并重定向到另一个页面

时间:2014-02-08 19:33:37

标签: javascript html django django-forms django-urls

您好Stackoverflow社区!

这标志着很长一段时间的粉丝第一次发帖!我几乎总能在这里找到一个看似不可能的问题的答案,但时机已到,我愤怒地离开谷歌搜索并决定在这里发帖!感谢所有帮助!

作为Django noob,我目前正在努力设计一个只包含两种URL的应用程序(想想:appear.in)所以基本上,localhost /的主页有一个用于文件夹名称输入和创建文件夹按钮的表单。 / p>

如果localhost / FOLDER1 /确实存在,则文件夹将被展开,否则(即localhost / NOTEXISTING /)它将重定向到home,并使用value ='NOTEXISTING'呈现HTML文本输入。 Supplementary Contents表提供了ForeignKey(文件夹)

的详细信息

我目前的网址是:

url(r'(\w+)/$', ShowFolder), #Trying to capture the folder name
url(r'^$', Homepage),        #Trying to capture blank URL -> home

views.py包含:

def Homepage(request):
    t = get_template('home.html')
    html=t.render(Context({'foldername': foldername}))
    return HttpResponse(html)

def ShowFolder(request, foldername):
    try:
         folder = Folder.objects.get(name=foldername)
         html=t.render(Context({'folder': folder }))
         return HttpResponse(html)
    except Folder.DoesNotExist:
         t = get_template('home.html')
         fradd = ("Folder not found, wanna create one?")
         html=t.render(Context({'foldername': foldername}))
         return HttpResponse(fradd + html)

HTML表单如下所示:

 <form >
<b>Folder Name: </b>
<input type="text" name="FodlerName" value=" {{ foldername }} ">
<input type="button" id="btn" value="Create Folder" name="btn">
 </form> 

所以真正阻止我的进步的是我缺乏页面重定向知识和捕获提交事件。

我现在想要的是从输入中获取文件夹名称,创建一个具有该名称的文件夹并重定向到localhost / NEWFOLDER,而不需要在此过程中修改任何URL。 我用JS和JQuery尝试过无数关于表单和HTML示例的教程,虽然没有成功。

任何帮助都将超过赞赏! 真诚地提前谢谢你!

1 个答案:

答案 0 :(得分:1)

我不完全确定在这里应该做什么视图。但是,只需通过request.POST['FolderName']从表格帖子中获取文件夹名称,假设您使用POST提交表单,但不应该这样。

使用重定向快捷方式重定向到该名称也很简单:

from django.shortcuts import redirect

folder_name = request.POST['FolderName']
return redirect('ShowFolder', (folder_name,))