Ho un'applicazione che fa uso di Django UserProfile
per estendere il modello integrato Django User
. Sembra un po 'come:Django Admin: Ordinamento di ForeignKey e ManyToManyField relazioni di riferimento Utente
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
ho aggiunto una nuova classe per il mio modello:
class Team(models.Model):
name = models.CharField(max_length=128)
manager = models.ForeignKey(User, related_name='manager')
members = models.ManyToManyField(User, blank=True)
Ed è iscritto nella Admin:
class TeamAdmin(admin.ModelAdmin):
list_display = ('name', 'manager')
admin.site.register(Team, TeamAdmin)
Ahimè, nel inteface di amministrazione , quando vado a selezionare un manager dalla casella di riepilogo, o impostare i membri del team tramite il campo di selezione multipla, sono ordinati dall'ID numerico dell'utente. Per la vita di me, non riesco a capire come ottenere questi ordinati.
Ho una classe simile con:
class Meta:
ordering = ['name']
che funziona alla grande! Ma io non "proprio" la classe User
, e quando provo questo trucco in UserAdmin
:
class Meta:
ordering = ['username']
ottengo:
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
non funziona neanche. Potrei specificare, come image_url_s
se volessi. . . come posso dire all'amministratore di ordinare i miei elenchi di utenti entro il username
? Grazie!
Grazie, Daniel! – dannyman
Dal momento che django 1.8 richiede anche 'fields = '__all __'' all'interno di 'Class Meta'. – Flash