【问题标题】:Not Redirect after submission the Django Forms提交 Django 表单后不重定向
【发布时间】:2020-07-14 21:43:41
【问题描述】:

嗨,亲爱的所有天才 Django 专家。我是 django 的新手。我的表单提交有问题。单击提交后,我的表单未重定向。 我的问题在下面

<h1> this is views.py page <h1>

from django.shortcuts import render, redirect
from crud.models import Userlist
from crud.forms import UserListForm
# Create your views here.
def addforms(request):
    if request.method == "POST":
        form = UserListForm(request.POST)
        if form.is_valid():
            try:
                form.save()
                return redirect()
            except:
                pass
    else:
        form = UserListForm()
    return render(request, 'crud/index.html', {'form': form})
def show(request):
    user9 = Userlist.objects.all()
    return render(request, 'crud/show.html', {'user': user9})
def index(request):
    return render(request, 'crud/index.html')

我在其中添加了我的 HTML 表单文件...

<form action="/crud/addforms/" class="post-form" method="POST">
    {% csrf_token %}

        <br>
    <label>
        user Name :
            {{form.user_name}}
    </label>
        <br>
        <br>
    <label>
        user Email : {{form.user_email}}
    </label>
        <br>
        <br>
    <label>
        user phone :    {{form.user_phone_number}}
    </label>

    <br>
    <br>
    <input type="submit" value="Submit">
</form>

现在我添加了显示用户列表 HTML 表单。这个实际问题是,当我将用户信息放入提交表单时,它应该是重定向 show.html 页面。但是单击提交按钮后仍然存在...

<!DOCTYPE html>
    <html lang="en">
        <head>  
            <meta charset="UTF-8">  
            <title>Employee Records</title>  
        </head>
     <body>
        <table class="table table-striped table-bordered table-sm">  
            <thead class="thead-dark">  
                <tr>
                    <th>ID</th>
                    <th>User Name</th>
                    <th>User Email</th>
                    <th>User Contact</th>
                    <th>Actions</th>
                </tr>
            </thead>

            <tbody>  
                {% for dt in user9 %}
                <tr>
                    <td>{{ dt.id }}</td>
                    <td>{{ dt.user_name }}</td>
                    <td>{{ dt.user_email }}</td>
                    <td>{{ dt.user_phone_number }}</td>
                    <td>
                        <a href="/edit/{{ dt.id }}"><span class="glyphicon glyphicon-pencil" >Edit</span></a>
                        <a href="/delete/{{ dt.id }}">Delete</a>
                    </td>
                </tr>
                {% endfor %}
            </tbody>  
        </table>  
            <br>
            <br>
        <center><a href="/crud/addforms" class="btn btn-primary">Add New Record</a></center>
     </body>
    </html> 

【问题讨论】:

  • 那个裸露的try: except: 正在向你隐藏错误。
  • 你试过了吗:form.save()之后,返回redirect('your_redirect_url_here')

标签: python django


【解决方案1】:

您必须添加重定向到的路径,这篇文章应该可以帮助您解决redirect tutorialdjangoproject

编辑:

这就是我所说的路径

def addform(request):
    response = redirect('/redirect-success/')
    return response

问题出在return redirect() 您没有指定表单将重定向到的位置。做这样的事情return redirect('show')show是你urls.py中路径的名称

【讨论】:

  • 感谢您的回复。但我的网址没问题。我尝试在这个问题中添加带有 html 表单的 url,但我不能添加这个显示这个站点提交的一些错误。
  • 您可以编辑您的问题并添加错误消息或屏幕截图吗?
  • 哦,对不起,亲爱的,我尝试多次编辑我的问题,但点击提交后显示错误。
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 2018-07-21
  • 2013-04-13
  • 1970-01-01
相关资源
最近更新 更多