在Django中导入相关应用程序

时间:2013-04-30 10:09:34

标签: django django-models

我是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')

如何导入配置文件模型以在视频模型中使用?或者我的结构不合适..?对此最好的做法是什么?

1 个答案:

答案 0 :(得分:1)

我认为你的结构很好。基本上,python的模块只是一个python文件,您可以像这样导入:import <filename>并且您将导入其功能。但是当你在一个文件夹中组合一些python文件并在该文件夹中包含一个名为 init .py的文件时,你就有了一个python包。使用它是管理一组模块的更好方法,它允许导入中的点符号。您可能会看到Django应用程序的行为类似于程序包。

如果您要在Profile模块中导入video,则必须执行此操作:

from profile.models import Profile

也就是说,假设Profile模型已在profile中的models.py应用中定义。应该这样做。

如果您想了解有关python项目结构的更多信息,this是一个很棒的地方。