【问题标题】:django: Manager isn't accessible via username_and_password instancesdjango:无法通过 username_and_password 实例访问管理器
【发布时间】:2021-10-08 01:45:38
【问题描述】:

我在 Django 中遇到错误。这是我的代码。我也在这里使用数据库。

这是我在 models.py 中的代码:

from django.db import models
from django.db.models.fields.related import ForeignKey

# Create your models here.
class username_and_password(models.Model):
    user_name = models.CharField(max_length=300)
    password = models.CharField(max_length=300)
    def __str__(self):
        return self.password

然后我去了 cmd 并进行了迁移。 然后打开外壳。到目前为止一切正常。在shell中我做了

In [2]: from main.models import database, username_and_password

In [3]: data = username_and_password(user_name="Databasetest",password="Runningtest")

In [4]: data.save()

一切正常,但是当我输入时:

data.objects.all()

它显示了一个错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-4-d33a4311e29a> in <module>
----> 1 data.objects.all()

~\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\manager.py in __get__(self, instance, cls)
    177     def __get__(self, instance, cls=None):
    178         if instance is not None:
--> 179             raise AttributeError("Manager isn't accessible via %s instances" % cls.__name__)
    180
    181         if cls._meta.abstract:

AttributeError: Manager isn't accessible via username_and_password instances

请帮助我,我是库 Django 的新手,感谢任何帮助。

【问题讨论】:

    标签: python django database django-models


    【解决方案1】:

    您只能通过对类的引用而不是类对象来访问管理器,因此您可以通过以下方式访问它:

    <strong>username_and_password</strong>.objects.all()

    注意:Django 中的模型是用 PascalCase 编写的,而不是 snake_case, 所以您可能想将模型从 username_and_password 重命名为 UsernameAndPassword

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 2011-04-21
      • 1970-01-01
      • 2011-09-24
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多