python - Django 'next' 重定向用于登录和新用户

标签 python django

我有一个电子商务网站,用户无需登录即可查看广告。但是,当他们想要发布广告时,他们会被重定向到登录页面,成功登录后,他们会被定向到“创建广告”页。 该功能运行良好。问题是,当用户重定向到登录页面并点击“新用户”并创建帐户时,成功创建帐户后,她不会被重定向到“创建广告”页面。

到目前为止,我的代码如下所示:

登录.html:

#login form


<form method="post" action="{% url 'login' %}">   {% csrf_token %}   {% if request.GET.next %}   <input type="hidden" name="next" value={{ request.GET.next }} />   {% endif %}
        <b>Name:</b>
         {{ form.username }}
        <b>Password:</b>
        {{ form.password }}   <input type="submit" value="OK"> </form>
    # button to redirect to new account creation page
 <a href="{% url 'unauth_home_new' %}#section0"><button>New Account</button></a> </div>

views.py:

def login(request, lang=None, *args,**kwargs):
    if request.user.is_authenticated():
        if 'next' in request.POST:
            return redirect(request.POST['next'])
        return redirect("home")
    else:
        if request.method == 'POST':
            if lang == 'ur':
                return log_me_in(request=request,template_name='login_ur.html')
            else:
                return log_me_in(request=request,template_name='login.html')
        else:
            if lang == 'ur':
                return log_me_in(request=request,template_name='login_ur.html')
            else:
                return log_me_in(request=request,template_name='login.html')

最佳答案

您需要在创建帐户页面上进行下一步。从登录链接到创建用户页面后,下一个页面将在链接上丢失。因此,从登录传递下一个到创建用户页面。

您只需将其附加到链接即可创建新帐户。您可能需要在服务器端从登录 View 中 django 中的 url 获取它,并将其发送到登录模板,以便您可以将其添加到链接中。

关于python - Django 'next' 重定向用于登录和新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45311928/

相关文章:

python - 删除元组中列表列表中的项目

python - 抛出 ZeroDivisionError

python - 外国字段如何显示名称而不是其 id?

python - 显示 ModelForms 的 Django 表单验证错误

python - 用 uwsgi 替换 nginx

python - 如何显式引用字符串值(Python DB API/Psycopg2)

python - 使用 Python 求解非线性微分一阶方程

python - 在 Bokeh Table Widget 中选择列(而不是行)?

ajax - Json 无法在 Django 中使用 Ajax 工作

Django休息框架: how to route a uuid to an associated object?