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,))
Другие вопросы по тегам