【问题标题】:How to use SHELL_PLUS_DONT_LOAD? django-extensions==1.6.1, Django==1.9.2如何使用 SHELL_PLUS_DONT_LOAD? django-extensions==1.6.1,Django==1.9.2
【发布时间】:2016-05-18 21:20:02
【问题描述】:

我有以下设置:

SHELL_PLUS_DONT_LOAD = ['django.contrib.auth.models.User']

但是,当我运行 python manage.py shell_plus 时,这个模型仍然被加载。

# Shell Plus Model Imports
from [Redacted] import [Redacted]
from [Redacted] import [Redacted]
from django.contrib.admin.models import LogEntry
from django.contrib.auth.models import Group, Permission, User
from django.contrib.contenttypes.models import ContentType
from django.contrib.sessions.models import Session
# Shell Plus Django Imports
from django.conf import settings
from django.db import transaction
from django.core.urlresolvers import reverse
from django.db.models import Avg, Count, F, Max, Min, Sum, Q, Prefetch, Case, When
from django.utils import timezone
from django.core.cache import cache

关于如何调试的任何提示或线索?

【问题讨论】:

  • 您是否也可以尝试从命令行运行它以查看其行为是否有所不同? ./manage.py shell_plus --dont-load app1 django-extensions.readthedocs.org/en/latest/…
  • 这是一个很好的健全性检查,让我试试看我是否可以让它在 cli 中工作。
  • @djq 相同的行为,我什至尝试了自己的一种,以防万一出现与 django.contrib 相关的错误,例如加载中间件的顺序问题。看起来这个版本的djang-extensions 是在 12 月发布的,所以我想如果它是一个错误,我现在应该已经看到了这个报告。看起来我要通过源代码来弄清楚它在做什么,我确定这是用户配置错误。

标签: python django django-extensions


【解决方案1】:

"当引用嵌套模块时,例如 somepackage.someapp.models.somemodel,省略包名和对模型的引用。例如:"

SHELL_PLUS_DONT_LOAD = ['someapp.somemodel', ]  # This works
SHELL_PLUS_DONT_LOAD = ['somepackage.someapp.models.somemodel', ]  # This does NOT work

来源:https://django-extensions.readthedocs.io/en/latest/shell_plus.html

【讨论】:

    猜你喜欢
    • 2012-02-05
    • 2014-02-11
    • 2013-01-11
    • 1970-01-01
    • 2012-04-12
    • 2015-05-04
    • 1970-01-01
    • 2011-10-10
    • 2014-02-16
    相关资源
    最近更新 更多