у меня есть две модели пользовательская (встроенная в django) модель и другая модель под названием usertypes , в которой пользователь является внешним ключом, который я сделалмодель usertypes , встроенная в модель user .В модели usertypes есть поле с именем staff_status, я хочу использовать это поле (staff_status) в list_display.Я нашел решение этой проблемы с помощью callable, но я также читал, что использование callable func замедляет процесс, потому что он многократно обращается к базе данных, а затем я прочитал, что использование get_queryset может решить проблему, но я не знаю, как использоватьquery_set для решения этой проблемы или есть другой более эффективный способ решить эту проблему.
class UserTypesInline(admin.TabularInline):
model = UserTypes
raw_id_fields = ['user']
class UserAdmin(BaseUserAdmin):
inlines = [UserTypesInline]
list_display = ('username','staff',)
def staff(self, instance):
return instance.usertypes.staff_status
# def get_queryset(self,request):
# qs = super(UserAdmin, self).get_queryset(request)
# a = qs.select_related('usertypes')
# return a
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
class UserTypes(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
staff_choices = (
('', ''),
('Admin', 'Admin'),
('Chef', 'Chef'),
('Delivery Boy', 'Delivery Boy'),
)
staff_status = models.CharField(max_length=15, choices=staff_choices, default=staff_choices[0][0])
def __str__(self):
return self.staff_status