【问题标题】:Unable to access Dictionary values in Template (object pk is the dict key)无法访问模板中的字典值(对象 pk 是 dict 键)
【发布时间】:2011-08-18 01:37:47
【问题描述】:

我有一个将字典构造为模板的 Django 视图。我见过类似的问题,但没有人展示如何使用对象pk 作为键访问模板中的字典值(在我的情况下,keys 是对象的pks)。

查看构造dict的代码:

comment_uservote = {}
  if not current_logged_user.is_anonymous():
    for comment in comments_all:
        try:
            co_vote = Vote.objects.get(user=current_logged_user, comment=comment)
            comment_uservote[comment.id] = co_vote.vote
        except Vote.DoesNotExist:
            co_vote = ''
            comment_uservote[comment.id] = co_vote

我也尝试过comment_uservote[str(comment.id)],但这也无济于事。

模板(不起作用):

{% for comment in comments %}
  {{comment_uservote.comment.pk}} <!--this does not work-->
{% enfor %}

但是,如果我将任何评论的 pk 添加到 comment_uservote,则以下内容有效。

模板(有效,但如果直接替换):

{% for comment in comments %}
  {{comment_uservote.16}} <!--this works-->
{% enfor %}

感谢您的帮助。如果您需要我提供更多信息,请告诉我。

【问题讨论】:

    标签: django dictionary django-templates django-views


    【解决方案1】:

    不,这不起作用,文档也没有暗示它应该这样做。您将需要一个自定义标签或过滤器。

    【讨论】:

    • 对 Django 来说相当陌生。在标签和过滤器之间哪个更容易实现。由于我不知道从哪里开始,因此针对我的情况的任何提示都是有益的。
    • 有没有什么文章可以指点我,给我一个提示并帮助我的情况?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2019-04-03
    • 2021-06-18
    • 2015-01-19
    • 1970-01-01
    相关资源
    最近更新 更多