Pour intégrer du code js dans une page Admin:
class ArticleAdmin(admin.ModelAdmin):
class Media:
js = ("hidefields.js",)
Dans mon cas j'ai 4 colonnes (éditables) qui changent en fonction de la période, ainsi que l'affichage de la fiche correspondante (les champs correspondants sont "collapsés" ou pas).
]]>Non ce test ne sera pas effectué pour chaque page. Il faudra donc relancer le serveur.
Quels sont les éléments qui varient entre les deux vues?
Cordialement
]]>je me réponds à moi-même, car j'ai une solution qui pourrait (presque) me convenir : dans mon cas le fait de devoir afficher l'une ou l'autre des pages d'administration dépend de la période de l'année. Il me suffit donc de faire un test sur la date :
MoisDuJour = time.localtime().tm_mon
MoisDebut = 3 # Avril
MoisFin = 8 # Aout
if ((MoisDuJour >= MoisDebut) and (MoisDuJour <= MoisFin)):
admin.site.register(MaTable MaTableAdmin)
else:
admin.site.register(MaTable, MaTableBisAdmin)
Du coup j'ai une autre question : est-ce que django effectuera ce test à chaque appel de la page ou me faudra-t-il relancer le serveur aux changements de mois ?
Cordialement.
Le 16/03/2011 11:10, Yves Bourhis a écrit :
> Bonjour,
>
> je voudrais savoir s'il est possible de faire apparaître 2 pages différentes pour la même table dans le site d'administration ?
>
> Par exemple la table ressemblerait à quelque chose comme ça :
>
> class MaTable(models.Model):
> numero = models.AutoField(primary_key=True)
> nom = models.CharField('Nom courant', max_length=30)
> champ10 = models.CharField(max_length=30, blank=True)
> champ11 = models.CharField(max_length=30, blank=True)
> [...]
> champ19 = models.CharField(max_length=30, blank=True)
> champ20 = models.CharField(max_length=30, blank=True)
> champ21 = models.CharField(max_length=30, blank=True)
> [...]
> champ29 = models.CharField(max_length=30, blank=True)
> def __unicode__(self):
> return self.nom
>
> Pour laquelle, suivant le cas, on ne voudrait pouvoir afficher que les champs "champ10" à "champ19", où les champs "champ20" à "champ29"... en définissant 2 modèles d'administration distincts :
>
> class MaTableAdmin(admin.ModelAdmin):
> list_display = ['nom', 'champ10', ..., 'champ19']
> list_editable = ['champ10', 'champ15, 'champ19']
> ordering = ['nom']
> et :
> class MaTableBisAdmin(admin.ModelAdmin):
> list_display = ['nom', 'champ20', ..., 'champ29']
> list_editable = ['champ21', 'champ22, 'champ24, 'champ28']
> ordering = ['nom']
>
> mais je ne peux pas "doubler" la commande "admin.site.register()" !
>
> Si quelqu'un a une idée...
>
> Cordialement.
je voudrais savoir s'il est possible de faire apparaître 2 pages différentes pour la même table dans le site d'administration ?
Par exemple la table ressemblerait à quelque chose comme ça :
class MaTable(models.Model):
numero = models.AutoField(primary_key=True)
nom = models.CharField('Nom courant', max_length=30)
champ10 = models.CharField(max_length=30, blank=True)
champ11 = models.CharField(max_length=30, blank=True)
[...]
champ19 = models.CharField(max_length=30, blank=True)
champ20 = models.CharField(max_length=30, blank=True)
champ21 = models.CharField(max_length=30, blank=True)
[...]
champ29 = models.CharField(max_length=30, blank=True)
def __unicode__(self):
return self.nom
Pour laquelle, suivant le cas, on ne voudrait pouvoir afficher que les champs "champ10" à "champ19", où les champs "champ20" à "champ29"... en définissant 2 modèles d'administration distincts :
class MaTableAdmin(admin.ModelAdmin):
list_display = ['nom', 'champ10', ..., 'champ19']
list_editable = ['champ10', 'champ15, 'champ19']
ordering = ['nom']
et :
class MaTableBisAdmin(admin.ModelAdmin):
list_display = ['nom', 'champ20', ..., 'champ29']
list_editable = ['champ21', 'champ22, 'champ24, 'champ28']
ordering = ['nom']
mais je ne peux pas "doubler" la commande "admin.site.register()" !
Si quelqu'un a une idée...
Cordialement.
]]>