如何在django模板中对postgresql json字段元素进行if语句

kxkpmulp  于 2023-04-11  发布在  PostgreSQL
关注(0)|答案(1)|浏览(95)

我很难检查json字段是否包含django模板语言中的某些变量值。
这是我的模型:

from django.db.models import JSONField

class Widget(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    endpoint = models.CharField(max_length=512)  # "/data/id"
    type = models.CharField(max_length=64, default="line-graph")
    settings = JSONField(default=dict)

这就是我如何将数据插入到这个模型中:

widget, created = Widget.objects.get_or_create(
    user=request.user,
    endpoint=endpoint,
)
widget.type = type_
widget.settings = {
    "code": "",
    "dashboard": dashboard.id,
    "position": "top",
    "params": "per=m&len=1"
}

然而,当我在模板中这样做时,它失败了:

{% if widget.setttings.position == "top" %}

另一方面,这不会失败:

{% with widget.settings.position as pos %}
    {% if pos == "top" %}

我说的“失败”是指它没有通过条件。
我做错什么了吗?

  • Django版本:3.2
  • Python版本:3.8
  • PostgreSQL版本:12.10
u5rb5r59

u5rb5r591#

这里有3x 't':

{% if widget.setttings.position == "top" %}

相关问题