【问题标题】:How do i this query in Django views?我如何在 Django 视图中进行此查询?
【发布时间】:2020-05-09 09:16:25
【问题描述】:

如何获取邮箱为user@email.com的用户的密码,我的模型如下:

class user_registration_data(models.Model):
      name=models.CharField(max_length=100, blank=False)
      Address=models.CharField(max_length=100, blank=False)
      Password=models.CharField(max_length=100, blank=False)
      Email=models.EmailField(max_length=250, blank=False)

【问题讨论】:

    标签: django django-views django-queryset


    【解决方案1】:

    您的问题的答案是:user_registration_data.objects.get(Email='user@email.com').Password

    然而,这是一件奇怪的事情,因为 Django 开箱即用地处理用户身份验证 - 另外,您永远不应该将密码存储为纯文本。

    从头到尾阅读官方的 Django 教程。 https://docs.djangoproject.com/en/3.0/intro/tutorial01/

    【讨论】:

      【解决方案2】:

      你可以像下面这样使用 Django ORM: user_registration_data.objects.filter(Email='user@email.com')

      据您所知,在 django 中实现的每个类都应该是 CamelCase。所以你的模型应该是这样的:

      class UserRegistrationData(models.Model):
            name=models.CharField(max_length=100, blank=False)
            Address=models.CharField(max_length=100, blank=False)
            Password=models.CharField(max_length=100, blank=False)
            Email=models.EmailField(max_length=250, blank=False)
      

      并查看这篇文章以获取您的信息: https://realpython.com/python-pep8/

      【讨论】:

        【解决方案3】:

        在您看来,您可以通过以下方式获取密码:

        user_registration_data.objects.values("Password").get(Email="user@email.com")
        

        如果您正在创建自定义用户模型,那么它应该从 AbstractBaseUser 继承,或者您可以扩展用户模型。遵循Extending the existing User model 上的文档。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多