无法在视图文件中导入app.models

时间:2012-05-07 23:00:22

标签: python django django-models import

第一个django应用程序,我遇到了一些麻烦,我的项目就是这样的

MyProject
  -dinners (python package, my app)
    -views (python package)
      __init__.py
      dinners.py(conflict was here... why didn't I add this to the q.. sigh)
      general.py
    __init__.py
    admin.py
    models.py
    tests.py
    views.py
  -Standard django project boilerplate

在我的/views/general.py文件中,它看起来像这样:

import os
import re
from django.http import HttpResponse
from django.template import Context,loader
from dinners.models import Dinner

def home(request):
    first_page_dinners = Dinner.objects.all().order_by('-created_at')[:5]
    t = loader.get_template('general/home.html')
    c = Context({
        'dinners':first_page_dinners,
    })
    return HttpResponse(t.render(Context()))

在我的urls.py文件中,我将此正则表达式映射到此视图

url(r'^/*$','dinners.views.general.home', name="home")

然而,当我尝试点击主页时,我收到此错误: 无法导入dinners.views.general。错误是:没有名为models的模块

删除general.py顶部的dinners.models导入(以及所有特定于模型的代码)将删除错误。我以某种方式错误地导入视图文件?当然,我需要能够从视图中访问我的模型......

由于

更新:回答我在-views包中有一个文件dinners.py是冲突的

1 个答案:

答案 0 :(得分:1)

您需要在“晚餐”和“观看”文件夹中放置一个__init__.py文件,以制作这些有效的套餐。

编辑:

另外,删除那些会与包产生冲突的views.py文件。