SORU
28 HAZİRAN 2012, PERŞEMBE


reverse() Django içinde

Django kod bazen okuduğumda, bazı şablonlar reverse() görüyorum. Oldukça bunun ne olduğundan emin değilim ama HttpResponseRedirect ile birlikte kullanılır. Nasıl ve ne zaman bu reverse() kullanılan olması gerekiyordu?

Eğer birileri bazı örnekler ile cevap verse iyi olur...

CEVAP
28 HAZİRAN 2012, PERŞEMBE


https://docs.djangoproject.com/en/dev/topics/http/urls/#reverse

urls.py tanımlayın:

url(r'^foo$', some_view, name='url_name'),

bir şablon sonra bu url olarak: başvurabilirsiniz

<!-- django <= 1.4 -->
<a href="{% url url_name %}">link which calls some_view</a>

<!-- django >= 1.5 or with {% load url from future %} in your template -->
<a href="{% url 'url_name' %}">link which calls some_view</a>

bu gibi oluşturulmuş olacaktır

<a href="/foo/">link which calls some_view</a>

şimdi söyle bir şey yapmak istiyorum benzer views.py - mesela, sen işleme başka bir url (/foo/) başka bir görünüm (some_view) ve istediğiniz yönlendir kullanıcı için /foo/ (genellikle davasında başarılı form gönderme)

sadece sen yapabilirsin

return HttpResponseRedirect('/foo/')

ama eğer gelecekte url - urls.py güncelleme gerekecek değiştirmek istersenizvetüm kodunuzda başvuruları. Bu KURU (google) ihlal ediyor.

yerine söyleyebilirsin

return HttpResponseRedirect(reverse('url_name'))

Bu url, url adı url_name ile tanımlanan projenizde tanımlanan arar ve gerçek url /foo/ döndürür.

bu demek oluyor ki sen başvurmak için url ile name öznitelik - eğer değiştirmek istiyorsan url kendisi veya Görünüm anlamına gelir için yapabileceğiniz bu düzenleme sadece bir yerde - urls.py. Ben tek bir yerde düzenleme fikrine "Kendinizi Tekrar etmeyin" ve bir şey için çaba için. için etti.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • modica89

    modica89

    24 HAZİRAN 2007
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007