IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

contrib.admin : filtrer sur la langue


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de kazhar
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut contrib.admin : filtrer sur la langue
    Bonjour,

    Je travaille actuellement sur un site multilingue avec Django.
    Je souhaite, dans l'interface d'administration, sur certains modèles seulement (ceux qui ont un paramètre "lang". Mais je suppose qu'il me faudra définir cela manuellement), restreindre sur la langue.

    Si la langue définie est Français, seuls les uplets du modèle en Français seront à afficher. Comportement similaire en Anglais.

    Faire un "simple" liste_filter ne suffit pas. Je ne souhaite pas que, par défaut, l'utilisateur voit les deux langues.

    Si vous avez une piste de recherche, je suis fortement preneur

  2. #2
    Membre éprouvé Avatar de kazhar
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    Yatta !

    Avec un manager personnalisé pour chacun de mes modèles ayant un paramètre de langue, ça fonctionne y compris dans l'admin

    J'ai donc un modèle Post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class Post(models.Model):
        title = models.CharField(_('title'), max_length=200)
        content = models.TextField(_('content'))
        abstract = models.TextField(_('abstract'))
        user = models.ForeignKey(CustomUser)
        category = models.ManyToManyField(Category)
        lang = models.ForeignKey(Language)
        slug = models.SlugField(_('nice name'), max_length=200)
     
     
        created_at = models.DateTimeField(_('created at'), auto_now_add=True)
        updated_at = models.DateTimeField(_('updated at'), auto_now=True)
        published_at = models.DateTimeField(_('published at'))
     
        objects = PostManager()
    Et un manager PostManager :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from django.db import connection, backend, models
    from django.core.exceptions import ObjectDoesNotExist
    from o2sources.lib.localeurl.models import get_language_id
     
     
    class PostManager(models.Manager):
        def get_query_set(self):
            return super(PostManager, self).get_query_set().filter(lang=get_language_id())
    Ainsi, les seuls posts que j'ai sont, dans tous les cas, les billets correspondant à la langue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/05/2007, 20h21
  2. comment Filtrer sur la date
    Par pierrot67 dans le forum Bases de données
    Réponses: 11
    Dernier message: 27/04/2007, 12h20
  3. [D7], [MS SQLSERVER], filtrer sur un champ de type entier
    Par iam dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/12/2006, 16h19
  4. regexp sur la langue arabe
    Par Myra67 dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2006, 15h06
  5. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 08h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo