Djange reverse() для URL администратора, не работающего в команде управления
У меня есть проект (myproj) с несколькими приложениями в нем. В одном приложении (myapp) есть команда управления, с которой я борюсь. Я хочу, чтобы эта команда отправила электронное письмо, содержащее URL-адреса для экземпляров модели на сайте администратора. Но я продолжаю получать эту ошибку ImproperlyConfigured: The included urlconf XXX doesn't have any patterns in it
(где XXX - некоторое число).
Все остальное вроде работает. Когда я захожу на страницу "/ admin / myapp", появляются все мои модели, и я могу выполнять в них каждое действие. Так что это не похоже на ошибку в целом с моими шаблонами URL. У меня такое ощущение, что команда управления не загружает шаблоны URL, и поэтому она не работает, но я не могу понять, как заставить ее сделать это.
Некоторый сокращенный код. Все на питоне 2.7.6. Джанго 1.5.5
MYPROJ / MYPROJ / urls.py
from __future__ import absolute_import, unicode_literals
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^auth/', include('django.contrib.auth.urls')),
url(r'^admin/', include(admin.site.urls)),
# Other app includes, but none for myapp as it is strictly admin
)
MYPROJ / MyApp / urls.py
from __future__ import absolute_import, unicode_literals
from django.conf.urls import patterns, url
urlpatterns = patterns('',
)
MYPROJ / MyApp / Управление / Команды /my_command.py
from __future__ import absolute_import, unicode_literals
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
def handle(self, *args, **options):
from ... import do_stuff
do_stuff()
MYPROJ / MyApp/__init__.py
from __future__ import absolute_import, unicode_literals
# Tried: also reverse_lazy, just delays the exception
from django.core.urlresolvers import reverse
def do_stuff():
# Tried here: import myproj.urls
# Work...
# Exception here
a_url = reverse('admin:myapp_mymodel_change', a_model.pk)
# Work...
# Send email here
# Exception here if using reverse_lazy
1 ответ
Arg. Я идиот. Должно быть:
reverse('admin:myapp_mymodel_change', args=(a_model.pk,))