Tengo una aplicación que utiliza el UserProfile
de Django para ampliar el modelo Django User
incorporado. Ve un poco como:Administrador de Django: Pedido de ForeignKey y relaciones ManyToManyField que hace referencia al usuario
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
# Local Stuff
image_url_s = models.CharField(max_length=128, blank=True)
image_url_m = models.CharField(max_length=128, blank=True)
# Admin
class Admin: pass
he añadido una nueva clase de mi modelo:
class Team(models.Model):
name = models.CharField(max_length=128)
manager = models.ForeignKey(User, related_name='manager')
members = models.ManyToManyField(User, blank=True)
Y se ha registrado en el administrador:
class TeamAdmin(admin.ModelAdmin):
list_display = ('name', 'manager')
admin.site.register(Team, TeamAdmin)
Por desgracia, en el inteface de administración Cuando selecciono un administrador del cuadro desplegable o establezco a los miembros del equipo a través del campo de selección múltiple, el ID numérico del usuario lo ordena. Por mi vida, no puedo encontrar la manera de ordenarlos.
tengo una clase similar con:
class Meta:
ordering = ['name']
que funciona muy bien! Pero no "propia" la clase User
, y cuando intento este truco en UserAdmin
:
class Meta:
ordering = ['username']
me sale:
django.core.management.base.CommandError: One or more models did not validate:
events.userprofile: "ordering" refers to "username", a field that doesn't exist.
user.username
tampoco funciona. Podría especificar, como image_url_s
si quisiera. . . ¿Cómo puedo decirle al administrador que ordene mis listas de usuarios por username
? ¡Gracias!
Thanks, Daniel! – dannyman
Desde django 1.8 también necesita 'fields = '__all __'' dentro de 'Class Meta'. – Flash