删除迁移和makemigrations之后django.db.utils.OperationalError

蒿甲醚

我已经删除了项目中的所有迁移,删除了数据库,并尝试使用manage.py makemigrations命令重新创建迁移但是我得到了错误:

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pycharm/django_manage.py", line 41, in <module>
    run_module(manage_file, None, '__main__', True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 176, in run_module
    fname, loader, pkg_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 82, in _run_module_code
    mod_name, mod_fname, mod_loader, pkg_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/Users/rankor/src/python/web/Auction/Auction/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
    utility.execute()
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/management/__init__.py", line 342, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/management/base.py", line 398, in execute
    self.check()
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/management/base.py", line 426, in check
    include_deployment_checks=include_deployment_checks,
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/checks/registry.py", line 75, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/checks/urls.py", line 10, in check_url_config
    return check_resolver(resolver)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/checks/urls.py", line 19, in check_resolver
    for pattern in resolver.url_patterns:
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/utils/functional.py", line 33, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/urlresolvers.py", line 417, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/utils/functional.py", line 33, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/core/urlresolvers.py", line 410, in urlconf_module
    return import_module(self.urlconf_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/rankor/src/python/web/Auction/Auction/Auction/urls.py", line 14, in <module>
    url(r'^orders/', include('orders.urls', namespace='orders')),
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 52, in include
    urlconf_module = import_module(urlconf_module)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/rankor/src/python/web/Auction/Auction/orders/urls.py", line 3, in <module>
    from orders.views import CreateOrderView, OrdersView, OrderView
  File "/Users/rankor/src/python/web/Auction/Auction/orders/views.py", line 7, in <module>
    from orders.forms import OrderForm
  File "/Users/rankor/src/python/web/Auction/Auction/orders/forms.py", line 47, in <module>
    class OrderForm(ModelForm):
  File "/Users/rankor/src/python/web/Auction/Auction/orders/forms.py", line 60, in OrderForm
    widget=forms.Select, queryset=OrderCategory.objects.filter(parent__isnull=False).order_by('ordering'))
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/forms/models.py", line 1142, in __init__
    self.queryset = queryset
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/forms/models.py", line 1168, in _set_queryset
    self.widget.choices = self.choices
  File "/Users/rankor/src/python/web/Auction/Auction/orders/forms.py", line 16, in _get_choices
    if not self.queryset:
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/models/query.py", line 266, in __nonzero__
    return type(self).__bool__(self)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/models/query.py", line 262, in __bool__
    self._fetch_all()
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/models/query.py", line 1074, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/models/query.py", line 52, in __iter__
    results = compiler.execute_sql()
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 852, in execute_sql
    cursor.execute(sql, params)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/utils.py", line 95, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/Users/rankor/src/python/web/Auction/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 323, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: orders_ordercategory

订单:

class OrderForm(ModelForm):
    """
    Order form
    """

    class Meta:
        model = Order
        fields = ('city', 'category', 'title', 'min_price', 'max_price', 'description', 'delivery_type', 'valid_to')

    city = forms.ModelChoiceField(
            widget=forms.Select, queryset=City.objects.filter(country__code='RU').order_by('name'))

    category = CategoryChoiceField(
            widget=forms.Select, queryset=OrderCategory.objects.filter(parent__isnull=False).order_by('ordering'))

    valid_to = forms.DateField(widget=SelectDateWidget)

class GroupedModelChoiceField(forms.ModelChoiceField):
    def optgroup_from_instance(self, obj):
        return ""

    def __choice_from_instance__(self, obj):
        return obj.id, self.label_from_instance(obj)

    def _get_choices(self):
        if not self.queryset:
            return []

        all_choices = []
        if self.empty_label:
            current_optgroup = ""
            current_optgroup_choices = [("", self.empty_label)]
        else:
            current_optgroup = self.optgroup_from_instance(self.queryset[0])
            current_optgroup_choices = []

        for item in self.queryset:
            optgroup_from_instance = self.optgroup_from_instance(item)
            if current_optgroup != optgroup_from_instance:
                all_choices.append((current_optgroup, current_optgroup_choices))
                current_optgroup_choices = []
                current_optgroup = optgroup_from_instance
            current_optgroup_choices.append(self.__choice_from_instance__(item))

        all_choices.append((current_optgroup, current_optgroup_choices))

        return all_choices

    choices = property(_get_choices, forms.ChoiceField._set_choices)


class CategoryChoiceField(GroupedModelChoiceField):
    def optgroup_from_instance(self, obj):
        return obj.parent.title

为什么以及如何解决?

PS Django 1.9,python 2.7,OSX。

gpichot

查看堆栈跟踪。

在预热过程中,Django会导入所有模型和URL。

您应该将queryset初始化移至OrderForminit方法。

有关更一般的说明,请回答洛伦佐。所有情况下,您都希望将字段查询集初始化移动到表单的init方法或将它们移动到视图。为什么?实际上,启动Django时,它可以导入一些表单,构建表单类,并且字段类属性也会发生同样的情况。结果,在导入表单时直接获取查询集,并在不重新加载服务器的情况下保持不变,因此,如果将数据添加到OrderCategory中,它将永远不会出现在select小部件中。

“解决方法”是将查询集初始化移动到表单的init方法。

在您的情况下:

class OrderForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(OrderForm, self).__init__(*args, **kwargs)
        self.fields['city'].queryset = City.objects.filter(country__code='RU').order_by('name')
        self.fields['category'].queryset = OrderCategory.objects.filter(parent__isnull=False).order_by('ordering')
    class Meta:
       #...
    # ... fields definition

有关相关Django文档的信息,请参见处理关系的字段

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

django.db.utils.OperationalError不管我尝试什么

来自分类Dev

运行初始makemigrations时的Django 1.9 django.db.utils.OperationalError

来自分类Dev

Django迁移django.db.utils.OperationalError:没有这样的表:

来自分类Dev

Django 1.7 django.db.utils.OperationalError:没有这样的表:auth_customuser

来自分类Dev

将Django连接到Docker Postgres实例,引发django.db.utils.OperationalError

来自分类Dev

Django:django.db.utils.OperationalError: 没有这样的列

来自分类Dev

django.db.utils.OperationalError无法连接到服务器

来自分类Dev

django.db.utils.OperationalError:(1044,“拒绝用户'someuser'@'localhost'访问数据库'/ path / to / Database”')

来自分类Dev

django.db.utils.OperationalError:致命:数据库不存在(postgres /部署到digitalocean)

来自分类Dev

django.db.utils.OperationalError:严重:数据库“路径”不存在

来自分类Dev

django.db.utils.OperationalError:(1045,用户'<user>'@'localhost'的访问被拒绝

来自分类Dev

django.db.utils.OperationalError:严重:用户“ deadlylaid”的对等身份验证失败

来自分类Dev

geodjango with mysql 获取错误 django.db.utils.OperationalError: (1045, "Access denied for user

来自分类Dev

django.db.utils.OperationalError:表“blog_post”已经存在

来自分类Dev

django.db.utils.OperationalError:没有这样的表:Schedule_swimmingscore

来自分类Dev

更改为 PostgreSQL 引发 django.db.utils.OperationalError: no such table Error

来自分类Dev

尝试在Django 1.9中迁移-奇怪的SQL错误“ django.db.utils.OperationalError:在“)”附近:语法错误“

来自分类Dev

Django全部验证测试错误-django.db.utils.OperationalError:没有这样的表:socialaccount_openidstore

来自分类Dev

Django django.db.utils.OperationalError:严重:剩余的连接插槽保留用于非复制超级用户连接

来自分类Dev

带有 Postgres 的 Django 应用程序上的 Docker 映像返回 django.db.utils.OperationalError

来自分类Dev

./manage.py测试结果在django.db.utils.OperationalError中:没有这样的列:MyNewColumn

来自分类Dev

django.db.utils.OperationalError:无法连接到服务器:没有这样的文件或目录

来自分类Dev

MySQL 社区服务器 8.0.16 - django.db.utils.OperationalError:(1045,“用户访问被拒绝(使用密码:是)”)

来自分类Dev

Django makemigrations有效,迁移失败并显示“ django.db.utils.IntegrityError:NOT NULL约束失败”

来自分类Dev

如何解决Pycharm Windows中“ django.db.utils.OperationalError:致命:用户“ Oeloun-pc”的密码身份验证失败?

来自分类Dev

django.db.utils.DatabaseError:没有这样的表

来自分类Dev

django.db.utils.ProgrammingError:类型“ raster”不存在

来自分类Dev

django.db.utils.ProgrammingError:关系“ ...”不存在

来自分类Dev

django.db.utils.DatabaseError:没有这样的表

Related 相关文章

  1. 1

    django.db.utils.OperationalError不管我尝试什么

  2. 2

    运行初始makemigrations时的Django 1.9 django.db.utils.OperationalError

  3. 3

    Django迁移django.db.utils.OperationalError:没有这样的表:

  4. 4

    Django 1.7 django.db.utils.OperationalError:没有这样的表:auth_customuser

  5. 5

    将Django连接到Docker Postgres实例,引发django.db.utils.OperationalError

  6. 6

    Django:django.db.utils.OperationalError: 没有这样的列

  7. 7

    django.db.utils.OperationalError无法连接到服务器

  8. 8

    django.db.utils.OperationalError:(1044,“拒绝用户'someuser'@'localhost'访问数据库'/ path / to / Database”')

  9. 9

    django.db.utils.OperationalError:致命:数据库不存在(postgres /部署到digitalocean)

  10. 10

    django.db.utils.OperationalError:严重:数据库“路径”不存在

  11. 11

    django.db.utils.OperationalError:(1045,用户'<user>'@'localhost'的访问被拒绝

  12. 12

    django.db.utils.OperationalError:严重:用户“ deadlylaid”的对等身份验证失败

  13. 13

    geodjango with mysql 获取错误 django.db.utils.OperationalError: (1045, "Access denied for user

  14. 14

    django.db.utils.OperationalError:表“blog_post”已经存在

  15. 15

    django.db.utils.OperationalError:没有这样的表:Schedule_swimmingscore

  16. 16

    更改为 PostgreSQL 引发 django.db.utils.OperationalError: no such table Error

  17. 17

    尝试在Django 1.9中迁移-奇怪的SQL错误“ django.db.utils.OperationalError:在“)”附近:语法错误“

  18. 18

    Django全部验证测试错误-django.db.utils.OperationalError:没有这样的表:socialaccount_openidstore

  19. 19

    Django django.db.utils.OperationalError:严重:剩余的连接插槽保留用于非复制超级用户连接

  20. 20

    带有 Postgres 的 Django 应用程序上的 Docker 映像返回 django.db.utils.OperationalError

  21. 21

    ./manage.py测试结果在django.db.utils.OperationalError中:没有这样的列:MyNewColumn

  22. 22

    django.db.utils.OperationalError:无法连接到服务器:没有这样的文件或目录

  23. 23

    MySQL 社区服务器 8.0.16 - django.db.utils.OperationalError:(1045,“用户访问被拒绝(使用密码:是)”)

  24. 24

    Django makemigrations有效,迁移失败并显示“ django.db.utils.IntegrityError:NOT NULL约束失败”

  25. 25

    如何解决Pycharm Windows中“ django.db.utils.OperationalError:致命:用户“ Oeloun-pc”的密码身份验证失败?

  26. 26

    django.db.utils.DatabaseError:没有这样的表

  27. 27

    django.db.utils.ProgrammingError:类型“ raster”不存在

  28. 28

    django.db.utils.ProgrammingError:关系“ ...”不存在

  29. 29

    django.db.utils.DatabaseError:没有这样的表

热门标签

归档