Python “在我的自定义模板过滤器文件中导入models.py”;django.core.exceptions.AppRegistryNotReady:应用程序不可用;“我还没装。”;
我正在创建模板过滤器,它将获取值并在我的模型中搜索它Python “在我的自定义模板过滤器文件中导入models.py”;django.core.exceptions.AppRegistryNotReady:应用程序不可用;“我还没装。”;,python,django,Python,Django,我正在创建模板过滤器,它将获取值并在我的模型中搜索它 import django django.setup() 试过了,没用 这是我的密码 目录\自定义\标记.py from catalog import models from django import template, shortcuts register = template.Library() @register.filter(name='test') def test(value): item = shortcuts.
import django
django.setup()
试过了,没用
这是我的密码
目录\自定义\标记.py
from catalog import models
from django import template, shortcuts
register = template.Library()
@register.filter(name='test')
def test(value):
item = shortcuts.get_object_or_404(models.Equipment, pk=value)
return item.name
from django.db import models
class EquipmentCategory(models.Model):
name = models.CharField(verbose_name="Name", max_length=30, unique=True)
category = models.CharField(verbose_name="Category", max_length=20, unique=True)
def __str__(self):
return self.name
class EquipmentSubCategory(models.Model):
name = models.CharField(verbose_name="Name", max_length=30, unique=True)
category = models.ForeignKey(EquipmentCategory, on_delete=models.CASCADE)
subcategory = models.CharField(verbose_name="Sub Category", max_length=20, unique=True)
def __str__(self):
return self.name
class Material(models.Model):
name = models.CharField(verbose_name="Name", max_length=30, unique=True)
material = models.CharField(verbose_name="Material", max_length=30, unique=True)
def __str__(self):
return self.name
class Equipment(models.Model):
name = models.CharField(verbose_name="Name", max_length=30)
# category = models.CharField(verbose_name="Category", max_length=20)
# subcategory = models.CharField(verbose_name="Sub Category", max_length=20)
category = models.ForeignKey(EquipmentCategory, on_delete=models.CASCADE)
subcategory = models.ForeignKey(EquipmentSubCategory, on_delete=models.CASCADE)
dimension_x = models.IntegerField(verbose_name="Dimensions X(cm)", default=0)
dimension_y = models.IntegerField(verbose_name="Dimensions Y(cm)", default=0)
dimension_z = models.IntegerField(verbose_name="Dimensions Z(cm)", default=0)
weight = models.FloatField(verbose_name="Weight(kg)", default=0)
qty = models.IntegerField(verbose_name="Quantity", default=0)
image = models.ImageField(verbose_name="Foto", blank=True, upload_to='fotos/', max_length=20)
accessories = models.TextField(verbose_name="accessories", blank=True)
material = models.ForeignKey(Material, on_delete=models.CASCADE)
# material = models.CharField(verbose_name="Material", max_length=20, null=True)
color = models.CharField(verbose_name="Color", max_length=20, null=True)
location = models.CharField(verbose_name="Location", blank=True, max_length=20)
description = models.TextField(verbose_name="Description", blank=True)
def __str__(self):
return self.name
型号.py
from catalog import models
from django import template, shortcuts
register = template.Library()
@register.filter(name='test')
def test(value):
item = shortcuts.get_object_or_404(models.Equipment, pk=value)
return item.name
from django.db import models
class EquipmentCategory(models.Model):
name = models.CharField(verbose_name="Name", max_length=30, unique=True)
category = models.CharField(verbose_name="Category", max_length=20, unique=True)
def __str__(self):
return self.name
class EquipmentSubCategory(models.Model):
name = models.CharField(verbose_name="Name", max_length=30, unique=True)
category = models.ForeignKey(EquipmentCategory, on_delete=models.CASCADE)
subcategory = models.CharField(verbose_name="Sub Category", max_length=20, unique=True)
def __str__(self):
return self.name
class Material(models.Model):
name = models.CharField(verbose_name="Name", max_length=30, unique=True)
material = models.CharField(verbose_name="Material", max_length=30, unique=True)
def __str__(self):
return self.name
class Equipment(models.Model):
name = models.CharField(verbose_name="Name", max_length=30)
# category = models.CharField(verbose_name="Category", max_length=20)
# subcategory = models.CharField(verbose_name="Sub Category", max_length=20)
category = models.ForeignKey(EquipmentCategory, on_delete=models.CASCADE)
subcategory = models.ForeignKey(EquipmentSubCategory, on_delete=models.CASCADE)
dimension_x = models.IntegerField(verbose_name="Dimensions X(cm)", default=0)
dimension_y = models.IntegerField(verbose_name="Dimensions Y(cm)", default=0)
dimension_z = models.IntegerField(verbose_name="Dimensions Z(cm)", default=0)
weight = models.FloatField(verbose_name="Weight(kg)", default=0)
qty = models.IntegerField(verbose_name="Quantity", default=0)
image = models.ImageField(verbose_name="Foto", blank=True, upload_to='fotos/', max_length=20)
accessories = models.TextField(verbose_name="accessories", blank=True)
material = models.ForeignKey(Material, on_delete=models.CASCADE)
# material = models.CharField(verbose_name="Material", max_length=20, null=True)
color = models.CharField(verbose_name="Color", max_length=20, null=True)
location = models.CharField(verbose_name="Location", blank=True, max_length=20)
description = models.TextField(verbose_name="Description", blank=True)
def __str__(self):
return self.name
我得到了这个错误
File "C:\Users\mro\PycharmProjects\EuroWeb\catalog\templatetags\catalog_custom_tags.py", line 1, in <module>
from catalog import models
File "C:\Users\mro\PycharmProjects\EuroWeb\catalog\models.py", line 4, in <module>
class EquipmentCategory(models.Model):
完全回溯
Traceback (most recent call last):
File "C:/Users/mro/PycharmProjects/EuroWeb/manage.py", line 21, in <module>
main()
File "C:/Users/mro/PycharmProjects/EuroWeb/manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\core\management\__init__.py", line 325, in execute
settings.INSTALLED_APPS
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\conf\__init__.py", line 79, in __getattr__
self._setup(name)
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\conf\__init__.py", line 66, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\conf\__init__.py", line 157, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\mro\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\mro\PycharmProjects\EuroWeb\EuroWeb\settings.py", line 140, in <module>
django.setup()
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\apps\registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\apps\config.py", line 90, in create
module = import_module(entry)
File "C:\Users\mro\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\mro\PycharmProjects\EuroWeb\catalog\templatetags\catalog_custom_tags.py", line 1, in <module>
from catalog import models
File "C:\Users\mro\PycharmProjects\EuroWeb\catalog\models.py", line 4, in <module>
class EquipmentCategory(models.Model):
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\db\models\base.py", line 103, in __new__
app_config = apps.get_containing_app_config(module)
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\apps\registry.py", line 252, in get_containing_app_config
self.check_apps_ready()
File "C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site-packages\django\apps\registry.py", line 135, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
回溯(最近一次呼叫最后一次):
文件“C:/Users/mro/PycharmProjects/EuroWeb/manage.py”,第21行,在
main()
文件“C:/Users/mro/PycharmProjects/EuroWeb/manage.py”,第17行,主
从命令行(sys.argv)执行命令
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\core\management\\uuuuuu init\uuuuuu.py”,第381行,从命令行执行
utility.execute()
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\core\management\\uuuuuu init\uuuuuuuuuuu.py”,执行中第325行
settings.INSTALLED\u应用程序
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\conf\\ uuu init\uuu.py”,第79行,在__
自我设置(名称)
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\conf\\ uuuu init\uuu.py”,第66行,在安装程序中
自包装=设置(设置模块)
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\conf\\ uuu init\uu.py”,第157行,在u init中__
mod=importlib.import\u模块(自我设置\u模块)
文件“C:\Users\mro\AppData\Local\Programs\Python\36\lib\importlib\\uuuu init\uuuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第994行,在_gcd_导入中
文件“”,第971行,在_find_和_load中
文件“”,第955行,在“查找”和“加载”中解锁
文件“”,第665行,在“加载”中
exec_模块中第678行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“C:\Users\mro\PycharmProjects\EuroWeb\EuroWeb\settings.py”,第140行,在
django.setup()
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\\uuuuu init\uuuuu.py”,第24行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\apps\registry.py”,第91行,填充
app_config=AppConfig.create(条目)
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\apps\config.py”,第90行,在create中
模块=导入模块(条目)
文件“C:\Users\mro\AppData\Local\Programs\Python\36\lib\importlib\\uuuu init\uuuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第994行,在_gcd_导入中
文件“”,第971行,在_find_和_load中
文件“”,第955行,在“查找”和“加载”中解锁
文件“”,第665行,在“加载”中
exec_模块中第678行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“C:\Users\mro\PycharmProjects\EuroWeb\catalog\templatetags\catalog\u custom\u tags.py”,第1行,在
从目录导入模型
文件“C:\Users\mro\PycharmProjects\EuroWeb\catalog\models.py”,第4行,在
类别设备类别(型号.型号):
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\db\models\base.py”,第103行,新__
app\u config=apps.get\u包含app\u config(模块)
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\apps\registry.py”,第252行,包含get_app_config
self.check_apps_ready()
文件“C:\Users\mro\PycharmProjects\EuroWeb\venv\lib\site packages\django\apps\registry.py”,第135行,在check\u apps\u ready中
raise AppRegistryNotReady(“应用程序尚未加载。”)
django.core.exceptions.AppRegistryNotReady:尚未加载应用程序。
文件结构应该是这样的
polls/
__init__.py
models.py
templatetags/
__init__.py
poll_extras.py
views.py
和在模板中
{% load poll_extras %}
文件结构应该是这样的
polls/
__init__.py
models.py
templatetags/
__init__.py
poll_extras.py
views.py
和在模板中
{% load poll_extras %}
好的。。。我找到了解决办法。如果有人能告诉我为什么会这样,我会很感激 解决办法是:
要将导致此错误的筛选器放入另一个文件确定。。。我找到了解决办法。如果有人能告诉我为什么会这样,我会很感激 解决办法是:
要将导致此错误的筛选器放入另一个文件您如何在此处运行Django?您的意思是什么?在我将我的模型文件导入到我的自定义过滤器文件之前,它工作正常。您在这里如何运行Django?您的意思是什么?在我将模型文件导入到自定义过滤器文件之前,它工作得很好。我知道,我有很多过滤器,它们工作得很好。不要只使用模型查询的过滤器请提供所有回溯和文件结构我知道,我有很多过滤器,它们工作得很好。不要仅将此筛选器与模型查询一起使用请提供所有回溯和文件结构