【问题标题】:Why can't my Django view receive data from a created tag in my Django template?为什么我的 Django 视图不能从我的 Django 模板中创建的标签接收数据?
【发布时间】:2014-10-23 16:08:16
【问题描述】:

Django 视图:

  if request.method == 'POST':
      myData = request.POST.get('tester', None)
      print myData

Django 模板(jquery 和 javascript):

  var i = document.createElement('input');
  i.setAttribute('type', 'hidden');
  i.setAttribute('id', 'tester');
  i.setAttribute('name','tester');
  i.setAttribute('value', 'PLEASE GET THIS!');
  $('#tester').appendTo('body');
  $('#add_here').before(i);

我从硬编码到模板文件中的标签中获取值没有问题,但我从使用 jQuery 和 javascript 创建的标签中获取值时遇到问题。有什么提示吗?

提前谢谢你!

【问题讨论】:

  • 您确定新的输入是在提交给服务器的表单中吗?我无法从这个简短的 sn-p 代码中分辨出来。
  • 我不确定。你建议我做什么来检查?
  • 在页面 DOM 上。如果您使用的是 chrome 或 firefox,那么您可以检查页面的当前状态并确认新元素已添加并且位于正确的位置。
  • 好的,是的,我已经做到了。元素就在那里。
  • 那么这表明 django 方面存在问题。

标签: javascript jquery python django-templates django-views


【解决方案1】:

我发现了这个问题。我的 HTML 中有一个没有开始标签的随机结束 /div 标签。我删除了它,代码开始正常工作。由于我不知道的原因,随机 /div 不允许创建的元素出现在 POST 数据中。当我执行检查元素时,这些元素显示在正确的位置,但是当您查看实际的 POST 数据时,这些元素并不存在。

我希望这可以节省我花费的时间。这里有一些链接可以帮助您验证您的 HTML。这些是我用来发现问题的链接。

http://www.freeformatter.com/html-validator.html

http://validator.w3.org/#validate_by_input

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2019-07-02
    • 2016-06-06
    • 2020-02-21
    相关资源
    最近更新 更多