【问题标题】:How do I use Django template tags inside javascript如何在 javascript 中使用 Django 模板标签
【发布时间】:2020-02-08 08:34:21
【问题描述】:

我正在使用一个名为 FullCalendar 的库,并且我希望我的模型数据在我的 javascript 中的模板中,我见过很多人这样做。但由于某种原因,模板标签不会注册为模板标签,我得到一个错误。

<script>
document.addEventListener('DOMContentLoaded', function() {
var Calendar = FullCalendar.Calendar;
var Draggable = FullCalendarInteraction.Draggable;

var containerEl = document.getElementById('external-events');
var calendarEl = document.getElementById('calendar');
var checkbox = document.getElementById('drop-remove');



// initialize the calendar
// -----------------------------------------------------------------

var calendar = new Calendar(calendarEl,  {
  plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'bootstrap', 'interaction' ],
  themeSystem: 'bootstrap',
  selectable: true,
  select: function(info) {

    var titleStr = prompt('Enter Title');
        var date = new Date(info.startStr + 'T00:00:00'); // will be in local time

        if (!isNaN(date.valueOf())) { // valid?
          calendar.addEvent({
            title: titleStr,
            start: date,
            allDay: true,
          });
        } 
  },
  locale: "sv",
  header: {
    left: 'prev,next today',
    right: 'dayGridMonth,timeGridWeek,timeGridDay'
  },
  customButtons: {

  },
  eventClick: function(info) {
    alert('Event: ' + info.event.title);

  },
  editable: true,
  droppable: true, 
  events: [

  {% for event in events %}
                    {
                        title: "{{ event.name}}",
                        start: '{{ event.start|date:"Y-m-d" }}',
                        end: '{{ event.end|date:"Y-m-d" }}',

                    },
                {% endfor %}

  ],

 });

  calendar.render();
  });

  </script>

不工作的部分是 {% for event in events %} 循环,视图将模型数据解析到模板中。例如,我可以在 html 标签中显示数据,但由于某种原因不能在 javascript 中显示?有人帮忙吗?

这些帖子做同样的事情,它似乎正在工作 FullCalendar in Django http://qaru.site/questions/2365182/fullcalendar-in-django

【问题讨论】:

  • 当你在这段代码上查看源代码时你看到了什么?
  • 抱歉,如何查看源代码?
  • @WilliamAbrahamsson 在浏览器中,右键单击,然后“查看页面源代码”
  • 是的,我得到了 HTML 文档
  • @WilliamAbrahamsson {% for event in events %} 循环中的代码。

标签: javascript html css django django-templates


【解决方案1】:

问题有点老了,但无论如何我都会回答。

这对我有用。

events: [
          {% for event in events %}
             {
                  title: "{{ event.event_name}}",
                  start: '{{ event.start_date|date:"Y-m-d" }}T{{ i.start_date|time:"H:i"}}',
                  end: '{{ event.end_date|date:"Y-m-d" }}T{{ event.end_date|time:"H:i" }}',
              },
          {% endfor %}
        ]

我们可以在views.py 中查看您的代码吗?谢谢

【讨论】:

  • 这是我使用外部脚本文件的正确方式,但没有声明负载静态我们不能使用模板标签吗?请任何人澄清疑问?
  • 加载静态不用于模板标签,加载静态意味着您将静态标签加载到可以与静态链接一起使用的tamolate。
  • // const Questions = [ // {% for result in results %} // { // q : "{{result.questions}}", // options : ["{{result .option1}}","{{result.option2}}","{{result.option3}}","{{result.option4}}"], // answer : "{{result.answer}}" // } // {% endfor %} // ]
  • 我刚刚添加了用于分隔代码行的注释,请您帮帮我。实际上,我正在使用 Django 制作测验应用程序。所以我正在从数据库中检索数据,我正在验证和计算分数,但我没有在那里添加代码。因为字符有限制。
猜你喜欢
  • 2015-04-13
  • 2011-08-25
  • 2014-03-20
  • 2022-11-25
  • 1970-01-01
  • 2011-09-17
  • 2015-12-23
  • 1970-01-01
相关资源
最近更新 更多