Skip to main content
 首页 » 编程设计

python之sqlite3.操作错误: no such table: django_content_type

2025年05月04日18jackei

我正在尝试运行不是由我编写的应用程序。 当我写 python manage.py makemigrations 我得到了:

 Traceback (most recent call last): 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute 
        return self.cursor.execute(sql, params) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute 
        return Database.Cursor.execute(self, query, params) 
    sqlite3.OperationalError: no such table: django_content_type 
 
    The above exception was the direct cause of the following exception: 
 
    Traceback (most recent call last): 
      File "manage.py", line 22, in <module> 
        execute_from_command_line(sys.argv) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 367, in execute_from_command_line 
        utility.execute() 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 341, in execute 
        django.setup() 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\__init__.py", line 27, in setup 
        apps.populate(settings.INSTALLED_APPS) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\registry.py", line 115, in populate 
        app_config.ready() 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\apps.py", line 23, in ready 
        self.module.autodiscover() 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\__init__.py", line 26, in autodiscover 
        autodiscover_modules('admin', register_to=site) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\module_loading.py", line 50, in autodiscover_modules 
        import_module('%s.%s' % (app_config.name, module_to_search)) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module 
        return _bootstrap._gcd_import(name[level:], package, level) 
      File "<frozen importlib._bootstrap>", line 978, in _gcd_import 
      File "<frozen importlib._bootstrap>", line 961, in _find_and_load 
      File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked 
      File "<frozen importlib._bootstrap>", line 655, in _load_unlocked 
      File "<frozen importlib._bootstrap_external>", line 678, in exec_module 
      File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed 
      File "C:\Users\direwolf\Documents\web\python\alexbog80-motivity-3e5c21f03b3e\app\motivity\admin.py", line 23, in <module> 
        admin.site.register(Offer, OfferAdmin) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\sites.py", line 110, in register 
        system_check_errors.extend(admin_obj.check()) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\options.py", line 117, in check 
        return self.checks_class().check(self, **kwargs) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 520, in check 
        errors.extend(self._check_list_display(admin_obj)) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 596, in _check_list_display 
        for index, item in enumerate(obj.list_display) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 596, in <listcomp> 
        for index, item in enumerate(obj.list_display) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 604, in _check_list_display_item 
        elif hasattr(model, item): 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\fields.py", line 55, in __get__ 
        return edit_string_for_tags(Tag.objects.usage_for_model(owner)) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\models.py", line 157, in usage_for_model 
        usage = self.usage_for_queryset(queryset, counts, min_count) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\models.py", line 183, in usage_for_queryset 
        extra_joins, extra_criteria, params) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\models.py", line 113, in _get_usage 
        'content_type_id': ContentType.objects.get_for_model(model).pk, 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\contenttypes\models.py", line 52, in get_for_model 
        ct = self.get(app_label=opts.app_label, model=opts.model_name) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\manager.py", line 85, in manager_method 
        return getattr(self.get_queryset(), name)(*args, **kwargs) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 379, in get 
        num = len(clone) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 238, in __len__ 
        self._fetch_all() 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 1087, in _fetch_all 
        self._result_cache = list(self.iterator()) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 54, in __iter__ 
        results = compiler.execute_sql() 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\sql\compiler.py", line 835, in execute_sql 
        cursor.execute(sql, params) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 79, in execute 
        return super(CursorDebugWrapper, self).execute(sql, params) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute 
        return self.cursor.execute(sql, params) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\utils.py", line 94, in __exit__ 
        six.reraise(dj_exc_type, dj_exc_value, traceback) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\six.py", line 685, in reraise 
        raise value.with_traceback(tb) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute 
        return self.cursor.execute(sql, params) 
      File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute 
        return Database.Cursor.execute(self, query, params) 
    django.db.utils.OperationalError: no such table: django_content_type 

我该怎么办?

更新 1: python manage.py migrate 回溯:

Traceback (most recent call last): 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute 
    return Database.Cursor.execute(self, query, params) 
sqlite3.OperationalError: no such table: django_content_type 
 
The above exception was the direct cause of the following exception: 
 
Traceback (most recent call last): 
  File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 341, in execute 
    django.setup() 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\registry.py", line 115, in populate 
    app_config.ready() 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\apps.py", line 23, in ready 
    self.module.autodiscover() 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\__init__.py", line 26, in autodiscover 
    autodiscover_modules('admin', register_to=site) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\module_loading.py", line 50, in autodiscover_modules 
    import_module('%s.%s' % (app_config.name, module_to_search)) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import 
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load 
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked 
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked 
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module 
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed 
  File "C:\Users\direwolf\Documents\web\python\alexbog80-motivity-3e5c21f03b3e\app\motivity\admin.py", line 23, in <module> 
    admin.site.register(Offer, OfferAdmin) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\sites.py", line 110, in register 
    system_check_errors.extend(admin_obj.check()) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\options.py", line 117, in check 
    return self.checks_class().check(self, **kwargs) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 520, in check 
    errors.extend(self._check_list_display(admin_obj)) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 596, in _check_list_display 
    for index, item in enumerate(obj.list_display) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 596, in <listcomp> 
    for index, item in enumerate(obj.list_display) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\admin\checks.py", line 604, in _check_list_display_item 
    elif hasattr(model, item): 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\fields.py", line 55, in __get__ 
    return edit_string_for_tags(Tag.objects.usage_for_model(owner)) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\models.py", line 157, in usage_for_model 
    usage = self.usage_for_queryset(queryset, counts, min_count) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\models.py", line 183, in usage_for_queryset 
    extra_joins, extra_criteria, params) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\tagging\models.py", line 113, in _get_usage 
    'content_type_id': ContentType.objects.get_for_model(model).pk, 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\contenttypes\models.py", line 52, in get_for_model 
    ct = self.get(app_label=opts.app_label, model=opts.model_name) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\manager.py", line 85, in manager_method 
    return getattr(self.get_queryset(), name)(*args, **kwargs) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 379, in get 
    num = len(clone) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 238, in __len__ 
    self._fetch_all() 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 1087, in _fetch_all 
    self._result_cache = list(self.iterator()) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\query.py", line 54, in __iter__ 
    results = compiler.execute_sql() 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\sql\compiler.py", line 835, in execute_sql 
    cursor.execute(sql, params) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 79, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\six.py", line 685, in reraise 
    raise value.with_traceback(tb) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
  File "C:\Users\direwolf\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute 
    return Database.Cursor.execute(self, query, params) 
django.db.utils 

.OperationalError: 没有这样的表:django_content_type

更新 2: 在 models.py

中提供类
class Offer(TimeStampMixin, SEOFieldsMixin): 
    title = models.CharField(u'Название предложения', max_length=255, blank=False) 
    discription = models.TextField(u'Красивое описание оффера', null=False, blank=False) 
    cover = models.ImageField(u'Обложка', blank=False, null=False) 
    tags = TagAutocompleteField(blank=False, verbose_name='Теги') 
    active = models.BooleanField(u'Активный?', default=True) 
    publish = models.BooleanField(u'Показывать на сайте?', default=True) 
 
    def preview_image(self): 
        # try: 
        thumbnail = get_thumbnail(self.cover, 'x50', crop='center') 
        # except TypeError: 
        #     return u'Нет картинки' 
        # except: 
        #     return u'Нет картинки'  # if original img not exist 
        return '<a href="%s/"><img src="%s"/></a>' % (self.id, thumbnail.url) 
 
    preview_image.short_description = u'Обложка' 
    preview_image.allow_tags = True 
 
    class Meta: 
        verbose_name = u'Предложение' 
        verbose_name_plural = u'Предложения' 
        ordering  = ('-modified_value',) 
        get_latest_by = 'created_value' 
 
    def __unicode__(self): 
        return u'%s' % self.title 

我没有找到管理类 只有这个:

from django.contrib import admin 
 
from app.motivity.models import TaskOffer, Offer, UserOffers 
 
class TaskOfferAdmin(admin.TabularInline): 
    model = TaskOffer 
    exclude = ['meta_title', 'meta_description', 'meta_keywords'] 
 
 
class OfferAdmin(admin.ModelAdmin): 
    list_display = ['preview_image','title','tags', 'publish'] 
    list_display_links = ['title'] 
    list_filter = ['tags'] 
    inlines = [TaskOfferAdmin, ] 
    fields = ['title', 'discription', 'cover', 'tags'] 
 
 
class UserOfferAdmin(admin.ModelAdmin): 
    pass 
 
admin.site.register(UserOffers, UserOfferAdmin) 
admin.site.register(Offer, OfferAdmin) 

请您参考如下方法:

我在 Mac OS 10.15.2 上使用 Python 3.6.5 和 Django==2.1.7 时遇到了同样的问题。我通过手动创建表 django_content_type 来修复它列:id, app_label, model

正在运行python manage.py migrate并且出现错误,应该有一个*.sqlite3在 DATABASE 上指定的路径上创建的文件您的 settings.py 中的 key 文件。

示例:

DATABASES = { 
    'default': { 
        'ENGINE': 'django.db.backends.sqlite3', 
        'NAME': os.path.join(BASE_DIR, 'base_site.sqlite3'), 
    } 
} 

我的 Sqlite 数据库文件名是 base_site.sqlite3并创建于 BASE_DIR项目的。

要遵循的步骤:

  • 使用以下方法连接到创建的 SQLite 数据库:
    sqlite3 <DB filename>  
    
  • 使用以下命令创建表:
    CREATE TABLE IF 
    NOT EXISTS "django_content_type" ( 
     "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, 
     "app_label" varchar(100) NOT NULL, 
     "model" varchar(100) NOT NULL 
    ); 
    
  • 最后使用以下命令运行迁移:
    python manage.py migrate --fake-initial 
    
    这应该会按预期运行迁移。