【问题标题】:Getting all the objects in the JavaScript from Django从 Django 获取 JavaScript 中的所有对象
【发布时间】:2022-01-17 12:50:21
【问题描述】:

我想从数据库中获取我所有的对象模型并以某种方式存储它们,我拥有的模型是:

class Device (models.Model):
    patientId = models.IntegerField(unique=True)
    deviceId = models.CharField(unique=True,max_length=100)
    hour = models.DateTimeField()
    type = models.IntegerField()
    glucoseValue = models.IntegerField()

我在views.py中发送它们:

device_list = list(Device.objects.all())
context = {"filename": filename,
           "deviceList": device_list,
               }

在 JS 中,我设法让每个对象都像这样:

{% for item in deviceList%}
console.log( "{{item}}" );
{% endfor %}

我想要以某种方式存储这些对象,但我真的不知道如何,因为它们就像模型对象 (1) 一样。

【问题讨论】:

  • 试试{{item.patientId}}{{item.hour}}。顺便提一句。 perentID 听起来应该是 ForeignKey。
  • 我已经设法像那样访问它们,但我想存储它们,而不是显示它们。
  • google "How to send json response - django" 并且在 js 端使用 json.parse({{deviceList}})...developer.mozilla.org/de/docs/Web/JavaScript/Reference/… 比你可以使用 js 中的所有数据

标签: javascript python django


【解决方案1】:

您必须将 django 模型转换为 javascript 对象,您可以通过多种方式进行操作,但我建议您这样做:

在views.py中将对象转换为json dict:

"deviceList": json.dumps([model_to_dict(x) for x in device_list])

在 HTML 模板中你可以这样做:

<script>
const deviceList = JSON.parse('{{ deviceList|safe }}')
console.log(deviceList)
</script>

【讨论】:

  • 似乎“日期时间类型的对象不是 JSON 可序列化的”。
  • 我设法通过使用 json_serial 使其工作,非常感谢您的回答。
  • 这就是我所说的。 Sharpek 很高兴你能把它打出来并给出正确的答案。使用序列化程序和 DRF 之类的东西会更好,但无论如何都要接受我的投票:)
猜你喜欢
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 2011-06-18
相关资源
最近更新 更多