0

第一个 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")

但是,当我尝试访问主页时出现此错误:无法导入晚餐.views.general。错误是:没有名为模型的模块

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

谢谢

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

4

1 回答 1

1

您需要__init__.py在“dinners”和“views”文件夹中放置一个文件来制作这些有效的包。

编辑:

此外,删除该 views.py 文件,这将与包产生冲突。

于 2012-05-07T23:03:10.840 回答