Cette page appartient aux archives web de l'EPFL et n'est plus tenue à jour.
This page belongs to EPFL's web archive and is no longer updated.

Les enfants de Django

Tequila - django middleware

Vous avez une application Django qui nécessite une authentification sur Tequila ?

 

Essayer Django-Tequila !

Posted by Julien Delasoie at 17:16
Journée au vert / workshop Django le 11 février

Journée spéciale Django à l'EPFL!

Des présentations auront lieu le matin, et nous ferons un workshop l'après-midi, reprenant un des thèmes présentés.

Lieu: Salle de conférence du DIT - EPFL (MA A0 364)

Date: vendredi 11 février 2011, de 9h à 17h

Entrée: libre pour toutes et tous, inscription souhaitée

 

Programme:

09:00-09:20: Stratégies de déploiement d'un projet Django, Gregory Favre - EPFL-DIT-KIS

09:20-09:40: South (migration de données), Joël Billaud & Grégory Charmier - EPFL-DIT-KIS

09:40-10:00: Développement avec l'outil Idea 10, Laurent Boatto - EPFL-DIT-KIS

10:30-10:50: Exécution de tâches non-interactives / cronjobs dans Django, Alain Borel - EPFL-SISB

10:50-11:10: Génération de PDF à la volée sous Django grâce à ReportLab, Jan Krause, UniGE

11:10-11:30: Système d'authentification de Django, lien Django-Tequila, Julien Delasoie, EPFL-DIT-KIS

--- Repas ensemble selon le menu et l'envie du moment ---

13:30-??: workshop sur l'un des thèmes abordés. Venez avec vos projets et PCs!

 

Nous ajouterons les présentations faites sur ce site!

 

 

 

[illustration: Alex Gaynor sauvagement attaqué par LE poney; djangoCon 2009, auteur inconnu]

Posted by Gregory Favre at 9:33
Journée au vert Django

Nous souhaitons organiser une journée de mise en commun des connaissances django-esques. Le but est surtout d'aller vers un résultat concret. La journée se diviserait en une partie présentations le matin, suivie d'une partie mise en pratique d'une des présentations l'après-midi.

Chacun est libre de proposer un sujet qu'il présentera seul ou à deux. Durée maximale de présentation 15mn. Seule contrainte: le sujet doit être suffisamment large pour être applicable aux différents projets django dans l'école.

Nous pensons fixer la date au mois de février ou début mars. Inscription sur doodle

Les propositions de sujet se font dans les commentaires de ce billet.

Merci à tous!

Posted by Gregory Favre at 11:33
Comments (7)
Splitting models across multiple files

La longueur d'un model.py a une limite : son lecteur.

Remède :http://code.djangoproject.com/wiki/CookBookSplitModelsToFiles

Posted by Julien Delasoie at 12:21
Django Admin pour un group de user

Lien sympa expliquant de manière claire comment créer un DjangoAdmin pour un groupe de users particulier :lien

 

Posted by Kermit La Grenouille at 14:37
Listing des applicatifs Django

Note à moi-même : la prochaine fois que je démarre un projet d'ajout d'une fonctionnalité, une recherche sur cette page pourrait m'éviter de réinventer la roue.

http://pypi.python.org/pypi?%3Aaction=search&term=django&submit=search

Posted by Julien Delasoie at 8:54
Pagination et web2010

Les moteurs de recherche affichent les millions de résultats des requêtes effectuées page par page. Le découpage automatique de ces résultats est un design pattern des plus courants et se doit d'être disponible dans un framework.

Django propose de base un système de pagination qui demande passablement de travail au niveau des vues. Eric Florenzano propose quant à lui un système beaucoup plus simple: django-pagination. Grâce à cette librairie, plus besoin de réfléchir à la navigation entre pages (que se passe-t-il si je suis sur la dernière page? et sur la seconde?), plus besoin d'écrire de code pour récupérer le numéro de page, etc. Malheureusement, le code HTML produit ne correspond pas à l'affichage défini dans les style guides de l'EPFL:

Image représentant la navigation inter-pages telle qu'imaginée par les graphistes

Voici donc la librairie django-pagination telle que modifiée pour l'usage EPFL: https://documents.epfl.ch/groups/k/ki/kis-unit/www/django/django-pagination-1.0.5.zip

Installation

Dans un shell sur la machine de destination:

curl https://documents.epfl.ch/groups/k/ki/kis-unit/www/django/django-pagination-1.0.5.zip > django-pagination.zip
unzip django-pagination.zip
cd django-pagination-1.0.5/
sudo python setup.py install

Déploiement dans votre projet Django

Dans le fichier settings.py:

  1. Ajouter 'pagination' dans la variable INSTALLED_APPS
  2. Ajouter 'pagination.middleware.PaginationMiddleware' à la variable MIDDLEWARE_CLASSES

Dans la vue

Il suffit simplement d'ajouter au contexte la liste de résultats à paginer. Exemple:

def list_authors(request):
    authors_list = Author.objects.all().order_by('name')
    return direct_to_template(request, 'authors/list.html', 
                              extra_context = {'authors': authors_list })

Dans le template

Toujours selon l'exemple de la liste d'auteurs, ce système paginera 10 auteurs par page et affichera 2 pages à gauche et à droite de la page courante dans la navigation inter-pages:

{% load pagination_tags %}
{% load i18n %}
{% autopaginate authors 10 %}

{% comment %}authors ne contient désormais que la liste des auteurs de la page courante {% endcomment %}

<ul>
{% for author in authors %}
  <li>{{ author.name }} ({{ author.sciper }})</li>
{% endfor %}
</ul>

{% comment %}il ne reste plus qu'à demander l'affichage de la navigation:{% endcomment %} 
{% paginate 2 %}

Et voilà!

Posted by Gregory Favre at 12:28
Les formsets et inlineformsets

Version sans javascript :

http://www.falconhat.com/tutorials/django-adding-inline-formset-rows-without-javascript/

Version javascript :

http://elo80ka.wordpress.com/2009/10/10/jquery-plugin-django-dynamic-formset/

Posted by Grégory Charmier at 9:08
Déploiement sur mesure

Fabric est un outil python de déploiement et d'administration à distance (SSH)

http://docs.fabfile.org

Posted by Julien Delasoie at 10:14
Faire des requêtes

 

# %s__%s va former title__contains = ... 

# %s__%s va former subtitle__contains = ...

        

        kwargs = {'%s__%s' % ('title', 'contains'): keyword,

                  '%s__%s' % ('subtitle', 'contains'): keyword

                  # TODO[gregory.charmier@epfl.ch]: Associer la recherche dans les mots clés    

                  }

        #args = Q( title__icontains = 'Foo' ) | Q( title__icontains = 'Bar' )

        

        published_translations = published_translations.filter(

            #*args, 

            **kwargs)

 

Posted by Grégory Charmier at 14:16
Page : 1 2 Next »