我混淆了STATIC_ROOT和STATICFILES_DIRS
实际上,我并不是很了解STATIC_ROOT的实用程序。我认为这是我必须放置公用文件的目录。该目录用于生产,这是collectstatic将放置(收集)静态文件的目录。
STATICFILES_DIRS是我需要的。
由于我处于开发环境中,因此对我来说,解决方案是不使用STATIC_ROOT(或指定其他路径)并在STATICFILES_DIRS中设置我的公用文件目录:
#STATIC_ROOT = (os.path.join(SITE_ROOT, 'static_files/')) import os SITE_ROOT = os.path.dirname(os.path.realpath(__file__)) STATICFILES_DIRS = ( os.path.join(SITE_ROOT, 'static/'), )
也别忘了 from django.conf import settings
from django.conf import settings
我将执行以下操作:
myproject/ ... app1/ views.py __init__.py models.py submodels/ __init__.py model1.py model2.py app2/ views.py __init__.py models.py submodels/ __init__.py model3.py model4.py
然后
#myproject/app1/models.py: from submodels/model1.py import * from submodels/model2.py import * #myproject/app2/models.py: from submodels/model3.py import * from submodels/model4.py import *
但是,如果你没有充分的理由,请将model1和model2直接放在app1 / models.py中,并将model3和model4直接放在app2 / models.py中
这是app1 / submodels / model1.py文件:
from django.db import models class Store(models.Model): class Meta: app_label = "store"
因此,请更正你的model3.py文件:
model3.py
from django.db import models from app1.models import Store class Product(models.Model): store = models.ForeignKey(Store) class Meta: app_label = "product"