作为一个完整的初学者,我真的希望我在这里遗漏了一些明显的东西,并且有经验的人可以很容易地指出我的错误。
我正处于创建一些 Django 模型的第一步,并且无法弄清楚如何解决我在尝试进行迁移时遇到的错误。根据我的研究,这个错误看起来很模糊。我不知道说没有属性“模型”是什么意思。
这是回溯:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
utility.execute()
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\management\__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\management\base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\management\base.py", line 332, in execute
self.check()
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\management\base.py", line 364, in check
include_deployment_checks=include_deployment_checks,
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\management\base.py", line 351, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\core\checks\registry.py", line 73, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 22, in check_admin_app
errors.extend(site.check(app_configs))
File "C:\Program Files (x86)\Python36-32\lib\site-packages\django\contrib\admin\sites.py", line 79, in check
if modeladmin.model._meta.app_config in app_configs:
AttributeError: 'Book' object has no attribute 'model'
这是模型代码:
class Author(models.Model):
name = models.CharField(max_length=80, blank=False, null=False, unique=True)
class Book(models.Model):
title = models.CharField(max_length=150)
description = models.TextField(blank=True, null=True)
series = models.CharField(max_length=150, blank=True, null=True)
authors = models.ManyToManyField(Author, blank=True)
finished = models.BooleanField(default=False, verbose_name="Finished")
# image = models.ImageField()
def list_authors(self):
return ", ".join([author.name for author in self.authors.all()])
class Narrator(models.Model):
narrator = models.CharField(max_length=80)
class Audiobook(Book):
length = models.TimeField(blank=False, null=False)
narrator = models.ForeignKey(Narrator, on_delete=models.SET_NULL, blank=False, null=True)
我已经阅读了一些教程,并阅读了我认为可能相关的任何 Django 文档,但我仍然缺少一些东西。任何想法或一般指针将不胜感激。
编辑:添加我的 admin.py。我对此进行了全部评论并且迁移工作正常,但是在尝试运行另一个迁移时我仍然发现相同的错误,以及类似的错误,但不是说没有属性'models'
,而是说没有属性'urls'
from django.contrib import admin
from .models import (Author, Book, Narrator, Audiobook)
# Register your models here.
admin.site.register(Author, Book)
admin.site.register(Narrator, Audiobook)