Jestem początkującym użytkownikiem Django 1.4.2. Grałem z tym kilka tygodni, ale utknąłem w tym samym punkcie: 404, jeśli przejdę do wstępnie ustawionego adresu URL ...
URLS.PY:
from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = patterns("",
(r"^admin/", include(admin.site.urls)),
url(r"^", include("cms.urls")),
(r"^comments/", include("django.contrib.comments.urls")),
)
if settings.DEBUG:
urlpatterns = patterns("",
url(r"^media/(?P<path>.*)$", "django.views.static.serve",
{"document_root": settings.MEDIA_ROOT, "show_indexes": True}),
url(r"", include("django.contrib.staticfiles.urls")),
) + urlpatterns # Example:
Śledziłem CMS Django i kilka innychwtyczki tyle razy, ale ciągle pojawia się błąd 404, gdy chcę wyświetlić podgląd adresu URL. W tym przypadku pomyślnie zainstalowałem Komentarze Django, jestem w stanie utworzyć komentarze (w backend), ale jeśli chcę wyświetlić podgląd w interfejsie ... 404. Czy coś jest nie tak z moimi URLS.PY?
example.com/en/comments -> 404
Z góry dziękuję.
Odpowiedzi:
0 dla odpowiedzi № 1Proste pytanie: widzisz en
lub coś w stylu (?P<language>...)
gdziekolwiek w twoim adresie URL conf? Dlaczego więc miałbyś oczekiwać, że dostaniesz za wszystko 404 /en/comments/
?
Ponadto, w tym adresy URL Django CMS pod adresem ^$
(root) zasadniczo przekazuje całe przetwarzanie adresów URL do swoich urls.py, więc wszystko, co dodasz później do urls.py, jest ignorowane. Jeśli chcesz dołączyć coś innego, musisz odejść przed to w urls.py, a wtedy będzie dostępne pod podanym adresem urlpattern, w tym przypadku po prostu /comments/
, nie /en/comments/
.
0 dla odpowiedzi nr 2
Próbowałeś:
urlpatterns = patterns("",
(r"^admin/", include(admin.site.urls)),
(r"^comments/", include("django.contrib.comments.urls")),
url(r"^", include("cms.urls")),
)
?
„example.com/comments/” powinien działać. Jeśli pojawi się ten sam błąd, upewnij się, że plik „django.contrib.comments” został dodany do pliku INSTALLED_APPS w pliku settings.py. Możesz także uruchomić „manage.py syncdb”, aby utworzyć tabele związane z aplikacją „komentarze”.
Skąd pochodzi „en /”? Czy jest to zakodowany adres URL na stronie aplikacji, czy jest on wstawiany ręcznie przez Ciebie?