首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django项目结构,

Django项目结构,
EN

Stack Overflow用户
提问于 2014-11-08 14:35:15
回答 2查看 170关注 0票数 1

我是Django的新手,我试图理解构建我的项目的“正确”方法,特别是何时以及如何在应用程序中放置单独的功能。

我正在建设的网站将主要包括静态信息(这是为度假别墅),我提供的意见,从主要的网站项目。我还想要包含一个日历,它将在侧边栏中显示可用性,我已经开始构建它作为一个应用程序"availabilityCalender“,因为它将在大多数页面上被重用,而且我可以看到我在其他项目中使用它。

我想不出的是,如何将其连接到应用程序的页面视图中。大多数教程将在线处理应用程序作为表示整个页面的方法,并链接到项目的urls.py视图。相反,我想将应用程序添加到我的页面中。最简单的表达我想做的事情的方法是:

代码语言:javascript
运行
复制
from django.shortcuts import render
from django.http import HttpResponse
import availabilityCalender


def index(request):
    availabilityCalender.views.monthView()

我希望这可以简单地将应用程序的视图添加到索引视图中。在测试时,我得到了错误"errorAttributeError at /,‘模块’对象没有属性‘视图’“。

我是否试图使用应用程序是一种不是为其设计的方式,还是简单地使用错误的方法?我为这个几乎肯定是一个非常简单的问题而道歉!

  • 编辑-

通过更改导入,我得到了上面的代码:

代码语言:javascript
运行
复制
from availabilityCalender.views import monthView


def index(request):
    return monthView(request)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-08 14:53:39

这样做的一种方法是使用模板继承。每个模板都可以扩展包含日历的基本模板。

另一种方法是将日历放在自己的模板中,并使用{% include %}模板标记。

如果日历中有与其相关的数据,则下一个问题将是将该数据发送到模板。如果将日历包含在站点的每个页面上,则可以创建一个自定义上下文处理器,该处理器将自动将日历数据添加到每个请求中。

如果日历仅在某些页面上,则可以按视图加载数据。也许您可以将日历功能提取到CalendarMixin视图中,以便在get_context_data中加载正确的日历数据。

票数 1
EN

Stack Overflow用户

发布于 2014-11-08 15:14:05

首先,您的项目应该有一个类似于此的结构:

代码语言:javascript
运行
复制
-/myProject
  -/myproject
    -settinngs.py
    -views.py
    -urls.py
    -/templates
  -mange.py
  -/availabilityCalender
    -models.py
    -views.py

现在,您需要确保您添加到您的设置INSTALLED_APPS应用程序"myproject.availabilityCalender",一旦这是相当简单的使用和重用您的应用程序在所有的项目和进一步的应用。在这种特殊情况下,如果您想在myproject/views.py上导入和使用应用程序,只需执行以下操作:

代码语言:javascript
运行
复制
from myproject.availabilityCalender.models import <--MODULES YOU NEED FOR YOUR VIEW-->

def monthView(request):
 .
 .
 .
  return render(request, 'index.html')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26818162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档