0

我正在使用 Django 休息框架rest-auth进行登录和注册。但我不想使用可浏览的 API 作为我的 UI。我正在构建自己的表单。

所以我正在使用这样的自定义登录网址:

path('rest-auth/customlogin', CustomLoginView.as_view(), name='rest_login'),

其中CustomLoginView定义为:

class CustomLoginView(LoginView):

    def get(self, request):
        return render(request, "api/test_template.html")

现在test_template.html,我想要 2 个输入字段:emailpassword. 如果我没有用模板覆盖,则显示在可浏览 API 中的相同字段。

我不确定如何将请求数据放入模板。(如果电子邮件和密码字段驻留在请求数据中,是否正确?)

test_template.html

{% block content %}
  <div class="row">
    <h3>Login</h3><hr/>
  {# I am not sure how to use input fields here where the data inputted goes in the email and password rest-auth fields#}
  </div>
{% endblock %}
4

1 回答 1

0

您需要定义一个表单

class LoginForm (forms.Form)
    username = forms.CharField(widget = forms.TextInput())
    password = forms.CharField(widget = forms.PasswordxInput())

将其添加到您的视图中

class CustomLoginView(LoginView):
   form_class = LoginForm
    def get(self, request):
        return render(request, "api/test_template.html")

然后在你的模板中

<form method="post" action="">
    {{ form.username}}
    {{form.password }}
</form>
于 2019-09-15T07:59:33.463 回答