Je tente d'étendre le modèle utilisateur contrib.auth de django, en utilisant un modèle en ligne 'Profile' pour inclure des champs supplémentaires.Django: comment inclure des champs de modèle dans le list_display?
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
class Profile(models.Model):
user = models.ForeignKey(User, unique=True, related_name='profile')
avatar = '/images/avatar.png'
nickname = 'Renz'
class UserProfileInline(admin.StackedInline):
model = Profile
class UserProfileAdmin(UserAdmin):
inlines = (UserProfileInline,)
admin.site.unregister(User)
admin.site.register(User, UserProfileAdmin)
Cela fonctionne très bien pour la page admin « Changer d'utilisateur », mais je ne peux pas trouver un moyen d'ajouter des champs de modèle en ligne dans la list_display. Il suffit de spécifier les noms des champs de profil dans list_display me donne une erreur:
UserProfileAdmin.list_display[4], 'avatar' is not a callable or an attribute of 'UserProfileAdmin' or found in the model 'User'.
je peux créer un appelable qui recherche l'utilisateur dans la table de profil et renvoie le domaine concerné, mais cela me laisse sans la possibilité de trier la liste par les champs en ligne, que je dois vraiment pouvoir faire.
Des suggestions?
Est-ce encore vrai, deux ans plus tard? – GDorn