Site Web multilingue avec des traductions stockées dans des colonnes d'une table. Nécessité de passer l'ensemble de requêtes au modèle avec des traductions déjà filtrées. La variable de langue est stockée en session.Annoter l'ensemble de requêtes avec la valeur du champ
class Item(models.Model):
name = models.CharField(max_length=128)
description = models.ForeignKey(Localization)
class Localization(models.Model):
klingon = models.TextField(blank=True, null=True, verbose_name='klingon')
english = models.TextField(blank=True, null=True, verbose_name='english')
pensée serait bien juste pour annoter les qs avec le texte nécessaire, mais je réussi à trouver comment annoter avec une valeur de champ. Quelque chose comme
item = Item.objects.all().annotate(text=description.klingon)
Une autre approche serait d'utiliser un filtre de modèle comme
item.description|choose_lang:request
mais le tri des qs avant que le modèle semble plus propre.
Merci. J'ai essayé ces choses F par moi-même, mais il s'est avéré que j'ai fait une erreur dans un endroit différent du code et quand il a échoué j'ai pensé que j'avais ces instructions fa fausses :) Maintenant tout fonctionne bien. –