Wpis z mikrobloga

#webdev #django #bootstrap mirki, ma ktoś doświadczenie z wiązaniem bootstrapa z django? mam spięte django z bootstrapem i modalny formularz logowania, przy wpisaniu złych danych zamiast wyświetlić mi na stronie głównej wiadomości że złe dane logowania, wyświetla mi dopiero na tym formularzu, który pojawia się po kolejnym kliknieciu na "loguj". jak zrobić żeby ta informacja była od razu dostępna na stronie po odpaleniu submita?

kod:

Zaloguj się na swoje konto
==========================

{% csrftoken %}
{% bootstrap
form form %}



Zarejestruj - Zapomniałem hasła
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@moon_bluebird: można to rozwiązać co najmniej na kilka sposobów:
1. Wysyłasz ajaxem dane do logowania i tak się logujesz (wtedy nie ma przeładowania więc modal nie zniknie)
2. Po otrzymaniu danych w Django dodajesz sobie jakąś klasę do modala i wtedy w cssie sobie to ogarniesz żeby był display: block
3. Wykrywasz w JSie komunikat błędu po przeładowaniu i wywołujesz metodę Bootstrapa do otwierania modala
  • Odpowiedz
@Rst00: czy idzie to załatwić bez ajax'a? jestem w JS zielony póki co a termin na pracę inżynierską mocno mnie goni, wiem że poszło by to przez dedykowaną stronę z formularzem, ale zastanawiałem się czy można by to rozwiązać prościej? tzn. z wyświetleniem komunikatu o błędach w ramach strony która to będzie obrabiała, a nie formularza który się wyświetli z błędami po ponownym kliknięciu na link wyświetlający modal form
  • Odpowiedz
@moon_bluebird: teraz mi przyszło do głowy, że najprościej by było jakbyś po nieudanym logowaniu przekierował usera na adres z dodanym # na końcu np. #login i wtedy w jsie sobie tylko sprawdzisz czy taki hash jest - jak tak to triggerujesz modal.

if(window.location.hash == '#login') {
$('#mymodal').modal('show')
}
  • Odpowiedz