#python #django #django-queryset #django-select-related
#python #django #django-queryset #django-select-related
Вопрос:
В моем приложении Django я хочу использовать select_related()
on QuerySet
для «следования» ForeignKey
полю, но мне нужно получить доступ только к нескольким полям в экземпляре модели «followed». Могу ли я каким-то образом использовать defer()
метод с моим полем «followed».
например, если у меня есть…
class BarModel(models.Model):
...
blah = models.TextField()
class FooModel(models.Model):
bar = models.ForeignKey(BarModel)
...
… и я делаю, FooModel.objects.all().select_related('bar')
как я могу defer()
использовать поле blah
.
Спасибо.
Ответ №1:
Используя обозначение с двойным подчеркиванием в Django, как показано здесь.
FooModel.objects.all().select_related('bar').defer('bar__blah', ...)
Комментарии:
1. Примечание: в настоящее время существует открытая проблема с select_related для отношения o2o и методом ‘only()’ (‘defer’ работает нормально). code.djangoproject.com/ticket/23051 (возможно, это было бы кому-то полезно)