【问题标题】:Django Across All Apps跨所有应用程序的 Django
【发布时间】:2016-10-13 17:19:24
【问题描述】:

我正在创建一个相当大的 django 项目,它需要两件事。 1)我需要一些模板文件可以在所有应用程序中访问。 2)我需要一个可以在所有应用程序中访问的模型。我该怎么做呢?

就模板而言,似乎将其添加到 TEMPLATES 指令中不起作用。

就模型而言,我是否可以在项目/项目文件夹中包含一个 models.py 或类似的东西,以便所有应用程序都可以访问?

Django 1.10 和 Python 3.5

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['templates'],
        'APP_DIRS': True,
        'OPTIONS': {
[...]

【问题讨论】:

  • 对于模型,您只需将它们导入您的应用程序from otherapp.models import A, B
  • 很好,我没有意识到。谢谢。
  • 模板不受任何应用程序的限制,所以我不确定你在这里问什么。
  • 如果我在应用程序内执行return render(request,"template.html"),它会在该应用程序内寻找模板文件夹。我想将 template.html 放在 project/project/templates 文件夹中,而不是 project/app/templates 文件夹中。
  • 根据 djengo 文档,通过在我的 settings.py 中添加 DIRS: [] 指令的路径,它应该将其添加到模板的搜索路径列表中。 docs.djangoproject.com/en/1.10/ref/settings/…

标签: python django


【解决方案1】:

能够解决这个问题。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR + '/templates'],
        'APP_DIRS': True,
        'OPTIONS': {
[...]

【讨论】:

    猜你喜欢
    • 2011-01-04
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多