/ / Administrator aplikacji django jest zasłonięty, gdy urls.py odnosi się do dowolnej innej aplikacji - django, amazon-ec2, django-urls, django-authentication

Aplikacja admin django jest zasłonięta, gdy urls.py odnosi się do dowolnej innej aplikacji - django, amazon-ec2, django-urls, django-authentication

wydaje mi się to nieporozumieniem z mojej stronyjak działa konfiguracja adresów URL w django. Myślałem, że pierwsze wyrażenie regularne, które pasuje, jest tam, gdzie jest „wysyłane”, ale jeśli mam inne na liście adresów URL, trafia do nich zamiast pierwszego.

Treść projektu urls.py kiedy strona administratora jest dostępna:

from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings


urlpatterns = [
url(r"^admin/", admin.site.urls),
#url(r"^api/", include("api.urls")),
#url(r"^index", include("limbo.urls")),
#url(r"^polls/", include("polls.urls")),
# url(r"^limbo/", include("limbo.urls")),
#url(r"edit/", include("limbo.urls")),
]  + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

ale gdy anuluję komentarz do pierwszego, drugiego lub ostatniego wiersza komentarza, pojawia się błąd:

invalid literal for int() with base 10: ""

jakieś pomysły?

na przykład, jeśli cofnę komentarz do linii, która mówi url(r"^api/", include("api.urls")),, Dostaję błąd, który podałem.
api/urls.py zawartość:

from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views

urlpatterns = [
url(r"^(?:addUse.?[html]{,4})?$", views.addUsageHistory, name="addUsageHistory"),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

i W śledzeniu widzę, że wydaje się, że pochodzi z tego pliku: /home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin/login.html i wiele sposobów w dół stacktrace (drugi od dołu), widzę to w /home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/utils/regex_helper.py, zmienna pattern jest ustawione na "(?:addUse\.?[html]{,4})?$, która jest jedną z wartości w api/urls.py. Dlaczego w ogóle byłby w api / urls.py? powinien był przejść do admin.site.urls, zanim jeszcze zobaczył r"^api/"

Odpowiedzi:

0 dla odpowiedzi № 1

jak to często bywa, rozgryzłem to po tak długim uderzeniu głową o ścianę, ale gdy tylko zadałem pytanie na SO, zrozumiałem. do wykorzystania w przyszłości, używając ?: na początku wyrażenia regularnego w aplikacji urls.py jest bardzo niebezpieczny. Zmieniłem aplikację urls.py, aby jej nie mieć i wszystko działa zgodnie z oczekiwaniami. zobacz mój udpated api/urls.py tutaj:

from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views

urlpatterns = [
url(r"^addUse.html$", views.addUsageHistory, name="addUsageHistory"),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)