Django importation error: No module named modèles

Je reçois l'erreur Could not import movies.views. Error was: No module named models

Voici mon traceback:

    Environment:
Request Method: GET
Request URL: http://localhost:8000/movies/awesome-movie/
Django Version: 1.3.1
Python Version: 2.7.3
Installed Applications:
['django.contrib.auth',
'username_patch',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.flatpages',
'south',
'tagging',
'tagging_autocomplete',
'accounts',
'movies',
'tracking',
'djcelery',
'pagination']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'pagination.middleware.PaginationMiddleware')
Traceback:
File "/Users/jeff/Code/filmlibrary/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
101.                             request.path_info)
File "/Users/jeff/Code/filmlibrary/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
252.                     sub_match = pattern.resolve(new_path)
File "/Users/jeff/Code/filmlibrary/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
252.                     sub_match = pattern.resolve(new_path)
File "/Users/jeff/Code/filmlibrary/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
158.             return ResolverMatch(self.callback, args, kwargs, self.name)
File "/Users/jeff/Code/filmlibrary/lib/python2.7/site-packages/django/core/urlresolvers.py" in _get_callback
167.             raise ViewDoesNotExist("Could not import %s. Error was: %s" % (mod_name, str(e)))
Exception Type: ViewDoesNotExist at /movies/awesome-movie/
Exception Value: Could not import movies.views. Error was: No module named models

Je ne sais pas pourquoi j'ai cette erreur. Mon code est comme suit...

J'ai un django app appelé tracking et un autre appelé movies. J'ai un fichier python appelé tracking.py dans le tracking application, elle se compose d'utiliser le code suivant:

filmlibrary/tracking/tracking.py

from movies.models import Movie
from tracking.models import MovieView
import os
import base64
def tracking_id(request):
try:
return request.session['tracking_id']
except KeyError:
request.session['tracking_id'] = base64.b64encode(os.urandom(36))
return request.session['tracking_id']
def log_movie_view(request, movie):
t_id = tracking_id(request)
try:
v = MovieView.objects.get(tracking_id=t_id, movie=movie)
v.save()
except MovieView.DoesNotExist:
v = MovieView()
v.movie = movie
v.ip_address = request.META.get('REMOTE_ADDR')
v.tracking_id = t_id
v.user = None
if request.user.is_authenticated():
v.user = request.user
v.save()

Ci-dessus est plutôt un truc de base. Mon views.py dans mon movies application utilise l'tracking.py fichier ici:

filmlibrary/movies/views.py

@login_required
def movie_details(request, slug, template_name="movies/movie_detail.html"):
movie = get_object_or_404(Movie, slug=slug)
movie.tracking_id = tracking.tracking_id(request)
movie.save()
tracking.log_movie_view(request, movie)
context = RequestContext(request, {'movie': movie })
if movie:
try:
screener = movie.moviemedia_set.get(movie_type='screener')
.... continued

Mise à JOUR:

Voici le contenu de filmlibrary/tracking/models.py

from django.db import models
from django.contrib.auth.models import User
from movies.models import Movie
class PageView(models.Model):
class Meta:
abstract = True
date = models.DateTimeField(auto_now=True)
ip_address = models.IPAddressField()
user = models.ForeignKey(User, null=True)
tracking_id = models.CharField(max_length=50, default='')
class MovieView(PageView):
movie = models.ForeignKey(Movie)

L'erreur semble venir de la ligne d'importation from tracking.models import MovieView dans le tracking.py fichier et je ne suis pas sûr pourquoi. Dès que j'en commentaire que la ligne de l'erreur disparaît, mais alors bien sûr, je vais avoir de nouvelles erreurs à propos de MovieView n'existant pas comme prévu. Je ne vois rien de mal à cela la ligne d'importation dans tracking.py.

Quelqu'un aurait-il des suggestions quant à pourquoi je reçois cette erreur et comment je peux résoudre ce problème?

  • Est-il un models.py fichier dans le tracking application?
  • David, il y a... je vais mettre à jour la question avec son contenu
  • On dirait que vous avez besoin de vérifier vos PYTHON_PATH
  • Django fonctionne différents que les scripts Python - ils mettre en place le chemin pour avoir accès à toutes les applications installées.
  • Django n'est pas de la magie. Comment êtes-vous envoking cela, quand vous voyez l'erreur? L'importation de travailler à partir de ./manage.py shell?
  • Aaron, bien sûr, sinon la totalité de l'app allait se briser, cette importation et de nombreux autres importations sont utilisés tout au long du projet. C'est une nouvelle application que nous avons ajouté aujourd'hui et je ne peux pas comprendre pourquoi ce qui se passe dans un fichier unique.
  • Est-il un __init__.py fichier dans le tracking application?
  • Amit, oui, il y est, je viens de triple vérifié. -rw-r--r-- 1 jeff personnel 0 6 Nov-11:33 tracking/__init__.py je suis perplexe...

InformationsquelleAutor tdelam | 2012-11-06