Как получить доступ к связанному объекту в шаблоне django? Я просто хочу отобразить заголовок сообщения закладки в моем шаблоне. Предполагая следующее представление и модели:
def my_bookmarks(request):
if request.method == 'GET':
list_my_bookmarks = sorted(
chain(
UserBookmarks.objects.filter(user=request.user),
), key=attrgetter('date_added'), reverse=True
)
paginator = Paginator(list_my_bookmarks, 20) # Show 20 bookmarks per page
page = request.GET.get('page')
my_bookmarks = paginator.get_page(page)
user = request.user
args = {'user': user,
'my_bookmarks': my_bookmarks,
}
return render(request, 'App/my_bookmarks.html', args)
bookmarkable_post_models = models.Q(app_label='App', model='post') | models.Q(app_label='App', model='model-b') | models.Q(app_label='App', model='model-c')
class UserBookmarks(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=False)
content_type = models.ForeignKey(ContentType, limit_choices_to=bookmarkable_post_models, related_name='bookmarks', related_query_name='bookmark', on_delete=models.CASCADE, null=True, blank=False)
object_id = models.CharField(max_length=50, blank=False)
content_object = GenericForeignKey('content_type', 'object_id')
date_added = models.DateTimeField(auto_now_add=True, blank=False)
class Post(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(verbose_name="Post Title", max_length=20)
content = models.TextField(verbose_name="Content of Post")
...
bookmarks = GenericRelation(UserBookmarks, related_query_name='post')
Доступ к объектам закладок сам по себе не кажется проблемой, если я сделаю: {{my_bookmarks}} в моем шаблоне, но я не понимаю, как получить к нему доступ элемент сообщения за закладкой
Спасибо за чтение