{"id":159,"date":"2009-10-01T22:09:41","date_gmt":"2009-10-01T20:09:41","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=159"},"modified":"2009-10-04T22:21:56","modified_gmt":"2009-10-04T20:21:56","slug":"django-registration-et-avoir-des-users-devient-facile","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2009\/10\/01\/django-registration-et-avoir-des-users-devient-facile\/","title":{"rendered":"Django registration, et avoir des users devient facile."},"content":{"rendered":"<p>Tout d&#8217;abord, mes plus plates excuses \u00e0 vous tous, fid\u00e8les lecteurs de mon petit espace qui attendiez avec d&#8217;abord joie, puis impatience, puis tristesse et d\u00e9sespoir, le billet de la django app du mois de septembre.<\/p>\n<p>Alors oui, nous sommes le premier octobre et le billet de la django app de septembre n&#8217;a pas encore \u00e9t\u00e9 post\u00e9. Oui, c&#8217;est une honte de lancer ainsi une si bonne id\u00e9e et de ne pas suivre le principe m\u00eame de la bonne id\u00e9e de le deuxi\u00e8me mois. Oui, je reconnais tout cela. Mais votre honneur, je plaide coupa.. pardon innocent.<\/p>\n<p>Ce n&#8217;est pas de ma faute si je n&#8217;ai pas \u00e9crit ce billet. Mon chien (comment \u00e7a je n&#8217;ai pas de chien?) a mang\u00e9 mes devoi.. pardon mon cable r\u00e9seau. Et puis c&#8217;est sans parler du d\u00e9barquement des ET, qui a eu lieu dans mon jardin (comment \u00e7a y a pas de jardin dans mon appart?) et qui a ruin\u00e9 ma pelouse.<\/p>\n<p>Bon, tr\u00eave de b\u00eatises. En fait il y a deux raisons \u00e0 ce retard sur le deuxi\u00e8me billet djangoapp du mois (et aussi sur mon relatif silence sur ce blog). Deux raisons tr\u00e8s simples :<\/p>\n<ul>\n<li>Une grosse p\u00e9riode bien chaude au boulot, avec suffisamment de boulot pour y bosser soir et week-end.<\/li>\n<\/ul>\n<ul>\n<li> Le fait que  la troisi\u00e8me occurrence du  SPLLOS (le salon professionnel des logiciels libres qui aura lieu \u00e0 marseille, le 13 octobre) se rapproche \u00e0 grand pas (ben oui le 13 octobre) et qu&#8217;en temps que pr\u00e9sident de l&#8217;association qui l&#8217;organise (Libertis, l&#8217;association des boites qui font du libre en PACA), j&#8217;ai pas mal de truc \u00e0 g\u00e9rer (d&#8217;ailleurs je profite de ce billet, m\u00eame si ils ne le liront jamais, pour remercier plus qu&#8217;un peu les membres de l&#8217;asso qui bossent aussi sur ce sujet, heureusement qu&#8217;on est \u00e0 plusieurs sur le truc, sinon \u2026 )<\/li>\n<\/ul>\n<p>Et, comme les deux points que je cite au dessus sont toujours d&#8217;actualit\u00e9, le billet du mois de septembre (mais oui on est encore, presque, en septembre) sera un billet court, sur une app que beaucoup doivent conna\u00eetre mais qui \u00e0 l&#8217;avantage d&#8217;\u00eatre suffisament petite pour \u00eatre tester avec peu de temps\u00a0 : J&#8217;ai nomm\u00e9 django-registration. Qui sert \u00e0 la registration des users (d\u00e9sol\u00e9 \u00e7a fait depuis le d\u00e9but du billet que je voulais le faire cet anglicisme).<\/p>\n<h1>1- A quoi \u00e7a sert , o\u00f9 on le trouve, comment on l&#8217;installe ?<\/h1>\n<h2>1.1 Le pourquoi du comment<\/h2>\n<p>Utiliser django-registration c&#8217;est bien parce que cela permet de ne pas r\u00e9inventer la roue et donc de ne pas perdre du temps \u00e0 d\u00e9velopper un syst\u00e8me d&#8217;enregistrement\/activation\/ utilisateurs.<\/p>\n<h2>1.2 O\u00f9 on la trouve ?<\/h2>\n<p>Sur bitbucket, il y a un repo avec un wiki bien sympa , ici : <a href=\"http:\/\/bitbucket.org\/ubernostrum\/django-registration\/ \">http:\/\/bitbucket.org\/ubernostrum\/django-registration\/ <\/a><\/p>\n<h2>1.3 Comment on l&#8217;installe ?<\/h2>\n<p>Il y a trois mani\u00e8re pour l&#8217;installer, par easy_install , par pypi ou avec les bonnes vieilles sources (hg cloneeeee) et un python manage setup.py.<br \/>\nPersonnellement j&#8217;ai une pr\u00e9f\u00e9rence pour la troisi\u00e8me m\u00e9thode, la doc \u00e9tant incluses dans les sources, je trouve \u00e7a plus facile d&#8217;avoir les sources du truc que je met \u00e0 jour de temps en temps.<\/p>\n<h1>2- Mais \u00e7a fait quoi django-registration, pour de vrai ?<\/h1>\n<p>Django registration met un place un syst\u00e8me complet d&#8217;enregistrement des users.<\/p>\n<p>A savoir, vous avez la vue qui g\u00e8re le fait qu&#8217;un user veut s&#8217;inscrire et va remplir un joli petit formulaire.<\/p>\n<p>Une fois le  formulaire submit, django va cr\u00e9er un compte user inactif et envoyer un mail qui contiendra une cl\u00e9 d&#8217;activation. L&#8217;utilisateur qui vient de submit sa demande d&#8217;enregistrement verra alors ensuite appara\u00eetre une jolie page lui disant d&#8217;aller v\u00e9rifier ses mails et d&#8217;activer son compte.<\/p>\n<p>Truc sympa, l&#8217;app g\u00e9re le fait d&#8217;interdire certains provider d&#8217;emails jetable ou l&#8217;interdiction de cr\u00e9er un compte avec un email d\u00e9j\u00e0 utilis\u00e9.<\/p>\n<p>Cerise sur le g\u00e2teau, il y a m\u00eame un petit script (qui utilise les commandes django) qui permettra de supprimer les comptes  qui n&#8217;ont pas \u00e9t\u00e9 activ\u00e9s et qui sont consid\u00e9r\u00e9s comme expir\u00e9s.<\/p>\n<h2>2.1 Et la localisation ?<\/h2>\n<p>Elle y est, dans tout plein de langues (y compris le fran\u00e7ais, bien entendu)<\/p>\n<h1>3- La doc ?<\/h1>\n<p>Bien fournie, tr\u00e8s pr\u00e9cise et claire, il n&#8217;y a vraiment rien \u00e0 redire.<\/p>\n<p>Une fois qu&#8217;on a install\u00e9 l&#8217;app, on a plus rien \u00e0 faire alors ?<\/p>\n<p>Ben en fait si, parce qu&#8217;il n&#8217;y a aucun template de fournis, m\u00eame pas \u00e0 titre d&#8217;exemple. Il faut donc &#8216;tous&#8217; les faire, mais c&#8217;est assez rapide. Et puis l\u00e0 aussi, la doc est vraiment bien faite et d\u00e9taille pr\u00e9cis\u00e9ment chaque variable du contexte de chaque view. Faire les templates n&#8217;est donc pas vraiment difficile.<\/p>\n<h1>4- En conclusion<\/h1>\n<p>Installez la et utilisez la.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tout d&#8217;abord, mes plus plates excuses \u00e0 vous tous, fid\u00e8les lecteurs de mon petit espace qui attendiez avec d&#8217;abord joie, puis impatience, puis tristesse et d\u00e9sespoir, le billet de la django app du mois de septembre. Alors oui, nous sommes le premier octobre et le billet de la django app de septembre n&#8217;a pas encore &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2009\/10\/01\/django-registration-et-avoir-des-users-devient-facile\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Django registration, et avoir des users devient facile.<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[35],"tags":[99,98],"class_list":["post-159","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois","tag-django","tag-python"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-2z","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":6,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/159\/revisions\/161"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}