Szukam dobrego samouczka dla przestrzeni nazw URL w Django. Uważam, że oficjalna dokumentacja jest zbyt skromna - brakuje jej dobrych przykładów. Znalazłem similar question tutaj na stosie, ale odpowiedzi nie pomogły mi w pełni zrozumieć temat.Ktoś zna dobry samouczek Django URL namespaces?
Odpowiedz
Uzgodnione, dokumenty do tego są dość mylące. Oto moje odczytanie go (NB: cały kod jest niesprawdzone!):
W apps.help.urls
:
urlpatterns = [
url(r'^$', 'apps.help.views.index', name='index'),
]
W głównej urls.py
:
urlpatterns = [
url(r'^help/', include('apps.help.urls', namespace='help', app_name='help')),
url(r'^ineedhelp/', include('apps.help.urls', namespace='otherhelp', app_name='help')),
]
W szablonie:
{% url help:index %}
powinien wytworzyć adres URL /help/
.
{% url otherhelp:index %}
powinien wygenerować adres URL /ineedhelp/
.
{% with current_app as 'otherhelp' %}
{% url help:index %}
{% endwith %}
powinien również produkować URL /ineedhelp/
.
Podobnie, reverse('help:index')
powinien produkować /help/
.
reverse('otherhelp:index')
powinien produkować /ineedhelp/
.
reverse('help:index', current_app='otherhelp')
powinny również produkować /ineedhelp/
.
Tak jak powiedziałem, jest to oparte na moim czytaniu dokumentów i mojej obecnej znajomości tego, jak rzeczy działają w Django. Nie poświęciłem czasu na sprawdzenie tego.
Dlaczego potrzebujemy ustawić app_name i namespace? Właśnie się zastanawiałem. Wydaje się, że działa również, gdy nie ustawiono nazwy aplikacji –
Ponieważ dokumenty [doprowadziły mnie do przekonania, że były konieczne] (https://docs.djangoproject.com/en/1.4/topics/http/urls/#defining-url-namespaces). Nawet jeśli dokumenty są błędne lub wprowadzają w błąd, prawdopodobnie jest bardziej odporne na przyszłe działanie funkcji "nazwa_aplikacji", zgodnie z dokumentacją, na wypadek, gdyby zachowanie w przyszłości zmieniło się tak, aby pasowało do dokumentów. Jeśli naprawdę chcesz wiedzieć dlaczego, musisz przeczytać kod. –
Dobra sugestia Normalnie staram się czytać jak najwięcej źródeł, ale nie mogłem bezpośrednio znaleźć powiązanej części, zrobię jeszcze więcej kopania. Przeczytaj przed dobrym artykułem, który powiedział: Źródło nigdy nie kłamie, ale instrukcja może zrobić. Po prostu kazał ludziom przeczytać źródło, jeśli napotkał problem lub użył api niewłaściwego hehe. –
To z docs
(r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')),
Może powinieneś być bardziej szczegółowe na temat tego, co staramy się robić.
- 1. Czy ktoś zna dobry samouczek języka Object Constraint Language (OCL)?
- 2. Dobry samouczek/referencja VML
- 3. Dobry samouczek dla SlickGrid?
- 4. Dobry samouczek dotyczący protokołu FIX?
- 5. Django. Dobry samouczek dla widoków opartych na klasach
- 6. Dowolny dobry samouczek dotyczący FakeItEasy
- 7. Czy ktoś zna ramy uczenia maszynowego Clojure?
- 8. Czy ktoś zna serwer demonstracyjny JSON?
- 9. Czy ktoś zna implementację algorytmu Yarowsky'ego?
- 10. Czy ktoś zna aktualny status Graphics32?
- 11. Czy ktoś zna kody wyjścia dla tfsbuild.exe?
- 12. Dobry samouczek obsługi konta AccountManager w systemie Android?
- 13. Proszę polecić dobry samouczek Slime'a lub screencasta
- 14. Samouczek # DataBinding
- 15. Samouczek UIImagePickerController?
- 16. .NET namespaces
- 17. Czy ktoś zna słowo, dla którego wbudowana jest funkcja ord()?
- 18. Czy ktoś zna minikomputer CSS oparty na REST?
- 19. Czy ktoś zna jakąkolwiek usługę podobną do Tropo?
- 20. Czy ktoś zna sposób na wyłuskanie elementów na liście?
- 21. Ktoś zna dobrze rozbudowywalny robot sieciowy typu open source?
- 22. Czy ktoś zna Jaxera? Szukam plusów i minusów
- 23. System plików WP8/Cordova - czy ktoś zna prawidłowy kod?
- 24. Moduły v. Namespaces w F #
- 25. Czy w SolrJ dostępny jest dobry samouczek lub zasób?
- 26. Dobry i kompletny samouczek dotyczący refleksji w .NET?
- 27. jQuery: bind namespaces events
- 28. C# namespaces w web.config
- 29. Samouczek Django: Co to jest choice_set?
- 30. Samouczek Django Seler nie zwraca wyników
Czy sprawdziłeś adres URL narzędzia do sprawdzania adresów URL w https://docs.djangoproject.com/en/1.3/topics/http/urls/#naming-url-patterns Zapraszam do przeczytania całej sekcji, ponieważ jeśli rozumiesz Podstawy tego, jak to działa, wtedy łatwiej byłoby zrozumieć, – FallenAngel
@FallenAngel: mój punkt wciąż pozostaje - w oficjalnej dokumentacji nie ma dobrych przykładów użycia przestrzeni nazw. – minder