У меня есть это поле в моей модели:
class PlayerDetailPage(Page):
picture = models.ForeignKey('wagtailimages.Image', null=True, on_delete=models.SET_NULL, related_name='+', help_text=_('Player profile picture.'))
И я хочу создать тег включения, в котором я получаю доступ к различным полям в этой модели страницы трясогузки. Для эффективности БД я использую значения, но в поле picture
я хочу полный набор запросов. Не только значение в словаре, потому что мне нужно визуализировать изображение.
Прямо сейчас у меня есть это представление:
PlayerDetailPage.objects.values('title', 'path' , 'slug', 'owner__age', 'owner__nationality', )
Пока все хорошо, я выбираю только те поля, которые мне нужны, и получаю хороший словарь с одним запросом. Однако для поля picture
мне нужен полный набор запросов, потому что это поле изображения Wagtail. Он имеет несколько хороших параметров рендеринга. Как я могу объединить это, на мой взгляд, чтобы получить лучший дБ эффективный запрос?
И, к сожалению, прямой URL-адрес не является полем в модели изображения. Думаю, это свойство, я пробовал picture__url
, но это разрешено в:
Cannot resolve keyword 'url' into field. Choices are: collection, collection_id, created_at, file, file_hash, file_size, focal_point_height, focal_point_width, focal_point_x, focal_point_y, height, id, renditions, tagged_items, tags, title, uploaded_by_user, uploaded_by_user_id, width
Мой взгляд:
@register.inclusion_tag('wdashboard/tags/player_widget.html', takes_context=True)
def player_widget(context):
qs = PlayerDetailPage.objects.values('title', 'path' , 'picture__file', 'slug', 'owner__age', 'owner__nationality', )
for ins in qs:
ins['picture'] = Image(file=ins['picture__file'])
return {'values1': qs,'request': context['request'],}