【问题标题】:getting html from filter and appending in django从过滤器中获取html并附加到django中
【发布时间】:2021-11-06 19:20:49
【问题描述】:

您好,我想知道如何从过滤器中获取数据并将其附加到我的 html 中。我收到此错误Uncaught SyntaxError: Unexpected token '<'

HTML

<span id='securedata'></span>
<script>
        window.onscroll = () => {
            if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
                document.querySelector('body').style.background = 'purple';
                <!--my problem is -->
                $('#securedata').append("{% recommend_community_first request.user.pk %}");

            }
            else {
                document.querySelector('body').style.background = 'white';
            }
        }

</script>

模板标签/load_recommendation.py:

@register.inclusion_tag('community/recommend_not_recommend.html')
def recommend_community_first(user_id):
    user = User.objects.get(id=user_id)
    community = Community.objects.all().order_by('-popularity')[:6]
    post = Post.objects.filter(community__in=[i.pk for i in community],video__isnull=True).order_by('-created')
    return {'posts':post,'moi':user}

我怎样才能从我的过滤器中附加该数据而不会出现任何错误。谢谢

【问题讨论】:

  • 那是 Python 异常,对吧?您能否提供整个回溯,而不仅仅是错误消息和相关的 Python 代码?
  • @yedpodtrzitko 不,错误来自 chrome 上的 js 控制台
  • 模板标签recommend_community_first的输出是什么?
  • @yedpodtrzitko 这是一个带有帖子的 html 内容。

标签: javascript django django-templates


【解决方案1】:

在 JavaScript 中访问 Django 模板变量

就这样做吧:

<script>
    let my_url = "{% url 'recommend_community_first' request.user.pk %}";
    // Or if it is {{ }} kind
    let my_var = '{{ context_name_variable }}';

    // Here you can use these variable
    $('#securedata').append(my_url);
</script>

诀窍是始终在 JS 部分的变量上使用引号(''"")。

【讨论】:

  • 感谢您的回复,但它不起作用我收到一个错误未捕获“SyntaxError:无效或意外令牌”。也许问题是我如何在过滤器“request.user.pk”中传递变量
  • 当我在 chrome 中查看源代码时,我正在获取数据,并且出现上述错误。数据未附加到 id。
  • 是的,我更新了答案,javascript 变量必须与 Django 模板变量完全相同,但被 " "' ' 包围。在这里我认为错误是我们如何编写 django url 模板变量 ({% url recommend_community_first request.user.pk %}) 但 它必须是 {% url 'recommend_community_first' request.user.pk %}。请注意网址名称周围的' '
  • 它不是 url 它只是我模板标签中的一个 custom_filter。
  • 我有多糟糕!你能告诉我这个过滤标签的定义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2017-11-19
  • 2011-03-31
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多