Как исправить ошибку Apps are not loaded yet в Django
Я новичок в Django и SQL. У нас есть четыре таблицы Категория, Продавец, Товар, Товар_продавец. Каждый продукт имеет одну категорию. каждый продавец может продавать продукт. Предположим, что вы не продаете один и тот же продукт несколько раз, и каждый продавец продает каждый продукт не более одного раза. Мы хотим найти продукты, которые имеют более 5 продавцов. и мы хотим найти вторую категорию, которая имеет наибольшее количество продуктов. Я хочу запустить SQL-код в Django. Я настроил параметры для использования ORM, но когда я запускаю программу, возникает ошибка 'Apps are not loaded yet'. Пожалуйста, дайте мне знать, как я могу это исправить.
вот код:
import os
import sys
import django
from django.conf import settings
INSTALLED_APPS = [
'orm',
'myapps',
]
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'db',
'USER' : 'admin',
'PASSWORD' : '',
'HOST' : 'localhost',
}
}
settings.configure(
INSTALLED_APPS = INSTALLED_APPS ,
DATABASES = DATABASES
,
)
django.setup()
if __name__ == "__main__":
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
import manage
from orm.models import Label
if __name__ == '__main__':
Label.objects.create(name='test')
print(Label.objects.get(name='test'))
from django.db import models
from django.db import connection
class Category(models.Model):
title = models.CharField(max_length=128)
class Seller(models.Model):
name = models.CharField(max_length=128)
product = models.ForeignKey(
Product,
on_delete=models.CASCADE,
related_name='Seller'
)
class Product(models.Model):
category_id = models.ForeignKey(
Category,
on_delete=models.CASCADE,
related_name='Product'),
rate = models.IntegerField(blank=True, null=True)
class ProductSeller(models.Model):
product_id = models.ForeignKey(product),
seller_id = models.ForeignKey(seller),
price = models.IntegerField(blank=True, null=True)
cursor = connection.cursor()
cursor.execute("""
SELECT product_id
FROM ProductSeller
GROUP BY product_id
HAVING COUNT(product_id) > 5
""")
cursor.execute("""
SELECT category_id
FROM Product
GROUP BY category_id
HAVING MAX(mycount)
FROM(SELECT category_id, Count(category_id) mycount
FROM orders
GROUP BY category_id)
AND NOT IN(SELECT category_id
FROM Product
GROUP BY category_id
HAVING MAX(mycount)
FROM(SELECT category_id, Count(category_id) mycount
FROM orders
GROUP BY category_id));
""")
вот ошибка:
RuntimeError Traceback (most recent call last)
<ipython-input-3-7a6989f760e8> in <module>
23 settings.configure(
24 INSTALLED_APPS = INSTALLED_APPS ,
---> 25 DATABASES = DATABASES
26 ,
27 )
~/anaconda3/lib/python3.7/site-packages/django/conf/__init__.py in configure(self, default_settings, **options)
102 """
103 if self._wrapped is not empty:
--> 104 raise RuntimeError('Settings already configured.')
105 holder = UserSettingsHolder(default_settings)
106 for name, value in options.items():
RuntimeError: Settings already configured.
AppRegistryNotReady Traceback (most recent call last)
<ipython-input-4-c39e5fb17be5> in <module>
1 from django.db import models
2 from django.db import connection
----> 3 class Category(models.Model):
4 title = models.CharField(max_length=128)
5 class Seller(models.Model):
~/anaconda3/lib/python3.7/site-packages/django/db/models/base.py in __new__(cls, name, bases, attrs, **kwargs)
105
106 # Look for an application configuration to attach the model to.
--> 107 app_config = apps.get_containing_app_config(module)
108
109 if getattr(meta, 'app_label', None) is None:
~/anaconda3/lib/python3.7/site-packages/django/apps/registry.py in get_containing_app_config(self, object_name)
250 Return None if the object isn't in any registered app config.
251 """
--> 252 self.check_apps_ready()
253 candidates = []
254 for app_config in self.app_configs.values():
~/anaconda3/lib/python3.7/site-packages/django/apps/registry.py in check_apps_ready(self)
133 # exception.
134 settings.INSTALLED_APPS
--> 135 raise AppRegistryNotReady("Apps aren't loaded yet.")
136
137 def check_models_ready(self):
AppRegistryNotReady: Apps aren't loaded yet.