2012-05-07 3 views
0

まずDjangoのアプリをapp.modelsをインポートできませんでしたし、私のプロジェクトは、それはこのようになります私の/views/general.pyファイルでこのは、ビューファイルに

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 

のようにレイアウトされているトラブルのビットを持っています:

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") 

にマッピングするには、この正規表現を持っていますoホームページにヒットしました。このエラーが表示されます: dinners.views.generalをインポートできませんでした。エラー:モジュール名がないモデル

generalinfoのトップにdinners.modelsをインポートし、モデル固有のコードをすべて削除するとエラーが取り除かれます。どうにか私はビューファイルに間違ってインポートしていますか?私はあなたが必要

+0

'dinners/views /'の下に '__init __。py'ファイルがありますか? – Tadeck

+0

はい..更新中 – Msencenb

+0

URLパターンから*を削除します(これはあなたのエラーとは関係ありませんが、それは良い方法です)。あなたがどんなURLにもマッチしたいなら、ちょうどr '^'を残してください。 – santiagobasulto

答えて

1

競合た-viewsパッケージ内のファイルdinners.pyを持っていた答え:もちろん私はUPDATE

おかげ

...ビュー内からの私のモデルにアクセスできるようにする必要があります__init__.pyファイルを「dinners」と「views」フォルダに入れて、これらの有効なパッケージを作成します。

EDIT:また

、パッケージとの競合を作成することviews.pyファイルを、削除します。

+0

私はそれらのファイルを含めて(申し訳ありません)..正しいファイル構造の投稿を更新します – Msencenb

+0

ええと、その兄のために申し訳ありません、私はあなたがそれを逃したと思って、それは競合を起こしている可能性があります。 – santiagobasulto

+0

心配する必要はありませんでした。私はPythonシェルでインポートエラーが発生しているだけでなく、素晴らしいスタート – Msencenb

関連する問題