Komentáře k článku

Django: Autentizace a autorizace

Django logo

Občas potřebujeme nějaký obsah zpřístupnit pouze určité sortě návštěvníků. Abychom návštěvníky odlišili, musí se autentizovat pomocí identifikačních údajů, což může být například uživatelského jméno a heslo. Django má v sobě zabudovanou podporu takovéto autentizace a také máme možnost autorizovat přístup pomocí přístupových práv a skupin.

Zpět na článek

8 komentářů k článku Django: Autentizace a autorizace:

  1. yed_

    model uzivatelskeho profilu

    Nebylo by lepsi pouzit pro uzivatelsky profil dedicnost modelu? Mam s tim lepsi zkusenosti, nezli s vazbou pres OneToOneField(). S danym modelem se pak jednoduseji pracuje. Priklad:

    from django.contrib­.auth.models import User
    from django.contrib­.auth.models import UserManager

    class Profile(AuthUser):
    info = models.TextFi­eld(_(‚Informa­ce‘), blank=True)

    objects = UserManager()

    1. Pavel DvořákAutor příspěvku

      Re: model uzivatelskeho profilu

      Je to také možné, ale tohle je doporučené řešení. Je to hlavně z toho důvodu, že request.user je objekt User, ne Profile, takže bychom museli přepisovat autentizační rozhraní.

      1. langpa

        Re: model uzivatelskeho profilu

        V případě šikovného použití dědičnosti nikoliv. V čem mám v Djangu s dědičností modelů problém je vazba přez GenericForeignKey, tam mi to trochu drhlo, ale vyřešilo se to také docela snadno.
        Je ale pravda, že zrovna uživatelský profil je radno dělat v Djangu tak jak v článku, v podstatě to už je „konvence“.

  2. Honza Kral

    Validace password

    Uvedeny kus kodu vyhodi vyjimku pokud pro password1 neprojde validace – nebude naplnen v cleaned_data a dostanete KeyError.

    Bylo by take pekne nepouzivat v prikladech (obzvlast pro zacatecniky) natvrdo zadane URL adresy, ale pouzit tag {% url %} a metodu reverse ve views.

    ModelForm neni jen trida ke generovani formularu, obsahuje hlavne logiku, ktera umoznuje i praci s modely – napriklad neni nutne pracne konstruovat initial argument, ale lze do formulare rovnou predat instanci pres parametr instance. Zavolani .save() na tom formulari pak provede patricny update toho modelu aniz byste se museli starat o rucni pridelovani jednotlivych fieldu (bez predani instance do __init__ .save() vytvori novou instanci modelu).

    1. Honza Kral

      Re: Validace password

      Pardon, prvni bod neplati, priklad je napsany spravne, moc se omlouvam, prekoukl jsem se.

    2. Pavel DvořákAutor příspěvku

      Re: Validace password

      Díky za připomínky. Napadlo mě, že bych poslední díl seriálu mohl věnovat tipům a trikům, jak si usnadnit práci. Rozhodně tam zahrnu i značku {% url %} a předávání modelu do formuláře a naopak.

  3. kiot

    Reset hesla

    Mozna byste mohl v dalsim dile udelat navod na rest hesla. Jedna se o lehky proces, ktery vsak neni nikde poradne popsan.

Napsat komentář

Přihlásit se

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: http://www.zdrojak.cz/?p=3097