Ho seguenti modelli:django prefetch quando si elencano gli oggetti in admin
class UserProfile(models.Model):
name = models.CharField()
info = models.OneToOneField(UserInfo, related_name='user')
class UserInfo(models.Model):
def __unicode__(self):
return self.user.__unicode__() + self.age
age = models.IntegerField()
class Ticket(models.Model):
userinfo = models.ForeignKey(UserInfo)
Il problema è ora nell'interfaccia di biglietteria di amministrazione. Il campo userinfo del ticket viene visualizzato come menu a discesa. Se c'è un sacco di UserInfo nel database, ognuno di essi effettua una singola chiamata al database (UserProfile) per generarne il nome.
Come posso dire all'amministratore (oa qualsiasi widget) di eseguire il precaricamento dei profili utente correlati durante il rendering del menu a discesa UserInfo?
Sto cercando qualcosa di simile
info = models.OneToOneField(UserInfo, related_name='user', prefetch_in_bulk=True)
usa 'return unicode (" {} + {} ". Format (self.user, self.age))' invece di quello che hai ora ('__unicode__' dovrebbe restituire unicode, non stringhe). –