/ / django admin app verdeckt, wenn urls.py auf jede andere app verweist - django, amazon-ec2, django-urls, django-authentifizierung

django admin app verdeckt, wenn urls.py auf andere Apps verweist - django, amazon-ec2, django-urls, django-authentication

Dies scheint ein Missverständnis für mich zu seinWie funktioniert die URL-Konfiguration in Django? Ich dachte, dass der erste passende Regex dort ist, wo er "abgesetzt" wird, aber wenn ich andere in der URL-Liste habe, geht er zu ihnen anstatt zu dem ersten.

Der Inhalt von Projekten urls.py Wenn auf die Admin-Site zugegriffen werden kann:

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)

Wenn ich jedoch die erste, zweite oder letzte auskommentierte Zeile nicht kommentiere, erhalte ich eine Fehlermeldung:

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

irgendwelche Gedanken?

Zum Beispiel, wenn ich die Zeile, die sagt, nicht kommentiere url(r"^api/", include("api.urls")),Ich bekomme den Fehler, den ich angegeben habe.
api/urls.py Inhalt:

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)

und das Im Traceback sehe ich, dass es anscheinend aus dieser Datei stammt: /home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin/login.html und ein Weg den Stacktrace hinunter (zweite von unten), ich kann das in sehen /home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/utils/regex_helper.py, Die Variable pattern ist eingestellt auf "(?:addUse\.?[html]{,4})?$, das ist einer der Werte in api/urls.py. Warum wäre es überhaupt in api / urls.py gelandet? Es hätte zu admin.site.urls gehen sollen, bevor es überhaupt gesehen wurde r"^api/"

Antworten:

0 für die Antwort № 1

Wie so oft habe ich es herausgefunden, nachdem ich meinen Kopf so lange gegen eine Wand geschlagen hatte. Sobald ich eine Frage zu SO gestellt habe, habe ich es herausgefunden. für zukünftige Referenz mit ?: am Anfang einer Regex in einer App "s urls.py ist sehr gefährlich. Ich habe meine App urls.py geändert, um sie nicht zu haben, und alles funktioniert wie erwartet. siehe mein udpated api/urls.py Hier:

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)