【问题标题】:Is there a way to save form input to class self in django?有没有办法将表单输入保存到 django 中的类 self?
【发布时间】:2019-07-30 04:23:13
【问题描述】:

我有一个表单类,我要求输入用户名和密码。我创建了自己的身份验证功能。我只是想将用户名和密码输入传递给身份验证函数。我尝试将其保存为 self.user/self.pw 或直接传递它。

提前致谢!

我正在使用 Django 锁定。我不需要将用户名和密码保存到数据库,因为我使用的是自己的身份验证功能。

class loginform(forms.Form):

    username = forms.CharField ...
    password = forms.CharField... 


    def authenticate(self, request, username, password):
        print("this actually prints")
        '''authenticate with passed username and password'''

【问题讨论】:

    标签: python django authentication lockdown


    【解决方案1】:

    您可以通过类的cleaned_data 属性访问它们。例如:

    class loginform(forms.Form):  # Please use PascalCase when defining class name(as per pep-8 style guide)
        # rest of the code...
    
        def authenticate(self, request):
            username = self.cleaned_data.get('username')
            password = self.cleaned_data.get('password')
    

    【讨论】:

    • 错误说 loginform 对象没有属性 'cleaned_data' :(
    • 需要调用表单的is_valid方法获取cleaned_data
    • 有没有办法在表单文件中做到这一点?我知道如何在视图中执行此操作,但似乎无法专门针对 django-lockdown 执行此操作
    • 当我调用 is_valid 时,它对主项目的表单做了一些事情,这与这个登录表单不同。它对特定模型说“必需”,就好像我的主要项目的表格已经提交一样。我不确定如何撤消此操作。任何提交或 url 更改后都需要登录凭据,而不是浏览器会话结束后需要登录凭据。对不起,很长的一段
    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2020-02-21
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多