AttributeError:type object ...没有属性'objects'

Kub*_*bas 8 python django django-models

models.py的片段

class Hardware_type(models.Model):
    type = models.CharField(blank = False, max_length = 50, verbose_name="Type")
    description = models.TextField(blank = True, verbose_name="Description")
    slug = models.SlugField(unique = True, max_length = 255, verbose_name = "Slug")

class Software_type(models.Model):
    type = models.CharField(blank = False, max_length = 50, verbose_name="Type")
    description = models.TextField(blank = True, verbose_name="Description")
    slug = models.SlugField(unique = True, max_length = 255, verbose_name = "Slug")
Run Code Online (Sandbox Code Playgroud)

现在

>>> sw = Software_type.objects.get(slug='unix')
>>> sw
<Software_type: Unix>
>>> hw = Hardware_type.objects.get(slug='printer')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: type object 'Hardware_type' has no attribute 'objects'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.有人可以帮帮我吗?

编辑:

对不起,没有发送所有代码 - 问题解决了. 在我的另一堂课

hardware_type = models.ManyToManyField(Hardware_type, verbose_name="Hardware Type")
Run Code Online (Sandbox Code Playgroud)

从hardware_type更改为hw_type后 - 工作正常我不知道会导致此问题.

Ign*_*ams 12

如果将自定义管理器添加到模型,objects则不会创建默认管理器.要么自己在类定义中添加它,要么坚持使用自定义管理器.


Kub*_*bas 1

事实证明,只有在 django console 中才开始工作,

后来我注意到 forms.py 中有一些旧代码

class Hardware_type(forms.ModelForm):
    class Meta:
        model = Hardware_type
Run Code Online (Sandbox Code Playgroud)

因此它不起作用,这对于命名类等来说是糟糕的一天。