Django ViewDoesNotExist, когда это происходит - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть приложение django, запущенное из службы Twisted, которое не может разрешить представления некоторых апплетов.

Когда я запускаю приложение на сервере Django, оно загружается нормально, но когда я запускаю его с Twisted, при переходе к этим апплетам в браузере появляется ошибка Could not import apps.ai_stats.views. Error was: No module named aidb, единственная проблема заключается в том, чтоФайл aidb.py абсолютно расположен в этих каталогах апплета.Моя структура выглядит следующим образом.

apps/
    ai_stats/
        __init__.py
        ai2.py
        aidb.py
        models.py
        urls.py
        views.py
    __init__.py
    manage.py
    settings.py
    urls.py
    views.py

Я не могу понять, почему он не будет загружать этот конкретный модуль.У меня в одном приложении куча разных апплетов, и некоторые работают с этим, а другие нет.Если вам нужна какая-либо другая информация, пожалуйста, дайте мне знать.

Вот мой файл views.py: он вызывает другой файл с именем ai2.py, который затем вызывает aidb.py.

from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse

import ai2


def index(request):
    # ai2.refresh_cache()
    return render_to_response('ai_stats/index.html', locals())
    # return HttpResponseRedirect(reverse('apps.ai_stats.views.dashboard', kwargs={'env':ai2.PROD}))


def dashboard(request, env):
    ai2.refresh_cache()
    # env = ai2.PROD
    mf_error, mf_data, _ = ai2.AIStats().data_for_chart('most_failures', env=env)
    mc_error, mc_data, _ = ai2.AIStats().data_for_chart('most_calls', env=env)
    wp_error, wp_data, _ = ai2.AIStats().data_for_chart('worst_performing', env=env)
    error = (mf_error or '') + (mc_error or '') + (wp_error or '')
    cache_timestamp = ai2.data_cache['timestamp']
    return render_to_response('ai_stats/dashboard.html', locals())


def drill(request, env, chart):
    # env = ai2.PROD
    row_limit = int(request.GET.get('limit', 100))
    error, data, _ = ai2.AIStats().data_for_chart(chart, env=env, limit=row_limit)
    cache_timestamp = ai2.data_cache['timestamp']
    return render_to_response('ai_stats/drill_%s.html' % chart, locals())


def dash_data(request, env, chart):
    # env = ai2.PROD
    error, data, chart_type = ai2.AIStats().data_for_chart(chart, env=env, params=request.GET)
    r = render_to_response('ai_stats/%s.xml' % chart, locals())
    if chart_type == ai2.GRAPH_CHART:
        r['Content-Type'] = 'text/xml'
    return r


def pop(request, env, chart):
    pop_template = 'pop_mtd'
    if chart == 'all_mtd':
        pop_template = 'pop_all'
    ops_chart = '%s_ops' % chart
    return render_to_response('ai_stats/' + pop_template + '.html', locals())

Вот полный след:

Environment:


    Request Method: GET
Request URL: https://0.0.0.0/ai_stats/

Django Version: 1.3.1
Python Version: 2.7.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'django.contrib.staticfiles',
 'apps.minisar',
 'apps.mock',
 'apps.actional',
 'apps.ai_stats',
 'apps.health',
 'apps.soap',
 'apps.directentry',
 'apps.toys',
 'apps.solutions']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  252.                     sub_match = pattern.resolve(new_path)
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  252.                     sub_match = pattern.resolve(new_path)
File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
  158.             return ResolverMatch(self.callback, args, kwargs, self.name)
File "/usr/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 /ai_stats/
Exception Value: Could not import apps.ai_stats.views. Error was: No module named aidb

1 Ответ

0 голосов
/ 14 декабря 2018

Не знаю почему, но по какой-то причине я решил просто переименовать файл в aidb2 и изменить импорт, и это сработало.Я не могу это объяснить вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...