tôi có các mô hình sau:django prefetch khi liệt kê các đối tượng trong quản trị
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)
Vấn đề bây giờ là trong giao diện quản trị vé. Trường userinfo của vé được hiển thị dưới dạng menu thả xuống. Nếu có rất nhiều UserInfo trong cơ sở dữ liệu, mỗi người trong số họ thực hiện một cuộc gọi đến cơ sở dữ liệu (UserProfile) để tạo tên của nó.
Làm cách nào tôi có thể yêu cầu quản trị viên (hoặc bất kỳ tiện ích con nào) tìm nạp trước UserProfiles liên quan khi nó hiển thị menu thả xuống UserInfo?
Tôi đang tìm kiếm một cái gì đó giống như
info = models.OneToOneField(UserInfo, related_name='user', prefetch_in_bulk=True)
sử dụng 'return unicode (" {} + {} ". Định dạng (self.user, self.age))' thay vì những gì bạn có bây giờ ('__unicode__' phải trả về unicode, không phải chuỗi). –