2008-12-24 10 views
3

Je vis en Norvège, et quand je fais des applications Django je voudrais pouvoir nommer mes applications avec des caractères comme "æøå", ces caractères fonctionnent bien en unicode, mais quand j'essaie d'utiliser ces caractères dans les noms d'application, ou dans les champs afficher le texte, je reçois une erreur.Unicode appnames dans Django

Encore mieux, je voudrais nommer mes applications par la convention anglaise, mais avoir quelque chose comme "verbose_name" pour les applications, et pas seulement pour les modèles.

Alors, est-il possible de définir un nom d'affichage pour les applications, et pas seulement pour les modèles? Et comment utiliser les caractères Unicode dans l'interface d'administration?

+0

Récemment, j'ai lu cet article: http://habrahabr.ru/blogs/django/46087/ Je pense que c'est ce que vous voulez, mais l'article est écrit en russe. – Lazin

+0

Cet article explique comment modifier le nom de l'application dans l'interface d'administration. – Lazin

Répondre

1

Je recommande fortement de ne pas essayer d'utiliser unicode dans vos applications. Cela provient du fait que le nom est actuellement dérivé du nom du répertoire dans lequel réside votre application. Ceci est supposé changer à l'avenir, permettant un nom détaillé pour l'application, mais pour le moment ce n'est pas possible.

Rappelez-vous également qu'avec la programmation, le standard de facto pour la dénomination et la documentation est l'anglais.

1

Il est un sale hack de http://softwaremaniacs.org/forum/django/716/ (en russe)

Dans le changement /django/contrib/admin/templates/index.html

<caption>{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}</caption> 

à

<caption>{% trans app.name %}</caption> 

Dans le models.py:

class Meta: 
    verbose_name = _("Module name") 
+0

N'est-ce pas juste pour le modèle, et pas pour l'application elle-même? Ou est-ce que je me méprends? La classe Meta, est-ce une sous-classe d'un modèle, ou s'agit-il d'une classe de base dans le fichier models.py? Quand je l'essaie en classe de base, j'obtiens une erreur à cause du "_" dans le _ ("Nom du module") Des idées? – espenhogbakk