【问题标题】:Import relative apps in Django在 Django 中导入相关应用程序
【发布时间】:2013-04-30 10:09:34
【问题描述】:

我是 Django 新手,对应用程序结构和导入有疑问。我的项目结构是这样的(来自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')

如何导入配置文件模型以在视频模型中使用?还是我的结构不合适..?这方面的最佳做法是什么?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

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

    如果你想在你的video 模块中导入Profile,那么你必须这样做:

    from profile.models import Profile
    

    也就是说,假设Profile 模型是在models.py 中的profile 应用程序中定义的。应该可以的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-22
      • 2019-04-14
      • 2015-10-13
      • 2016-05-15
      • 2015-12-30
      • 2017-09-17
      • 1970-01-01
      • 2014-01-19
      相关资源
      最近更新 更多