我是Django的新手,对app结构和导入有疑问。我的项目结构如下(来自deploydjango.com):
root/
manage.py
mysite/
__init__.py
urls.py
wsgi.py
settings/
apps/
__init__.py
profile
__init__.py
models.py
views.py
video
__init__.py
models.py
views.py
photos
__init__.py
models.py
views.py
基本上我会在我的网站上有一些个人资料,其中每个个人资料都有一些上传的照片和视频。所以在我的视频模型中,我有以下代码:
from django.db import models
from XXXXX import Profile
class Video(models.Model):
# more fields
company = models.ForeignKey(Profile, related_name='videos')
如何导入配置文件模型以在视频模型中使用?或者我的结构不合适..?对此最好的做法是什么?
答案 0 :(得分:1)
我认为你的结构很好。基本上,python的模块只是一个python文件,您可以像这样导入:import <filename>
并且您将导入其功能。但是当你在一个文件夹中组合一些python文件并在该文件夹中包含一个名为 init .py的文件时,你就有了一个python包。使用它是管理一组模块的更好方法,它允许导入中的点符号。您可能会看到Django应用程序的行为类似于程序包。
如果您要在Profile
模块中导入video
,则必须执行此操作:
from profile.models import Profile
也就是说,假设Profile
模型已在profile
中的models.py
应用中定义。应该这样做。
如果您想了解有关python项目结构的更多信息,this是一个很棒的地方。