首页 > 解决方案 > Django:比较模板中的字符串的问题

问题描述

我正在做一个简单的{% if %}比较,但无法让字符串匹配。

{% if request.user.username == empresa.vendedor|stringformat:"s" %}

我检查了课程并:

request.user.username<class 'str'>

empresa.vendedor|stringformat:"s"<class 'str'>

我打印一个案例并:

request.user.usernameMariano

empresa.vendedor|stringformat:"s"Mariano

在模型中

empresa.vendedor是一个外键vendedores.nombre

class empresa(models.Model):
    ..... other fields ......
    Vendedor = models.ForeignKey("Vendedores", help_text="Estatus del contenido", blank=True, null=True, on_delete=models.CASCADE)

    class Meta:
        ordering = ['Nombre']

    def __str__(self):
        return str(self.Nombre)

class Vendedores(models.Model):
    nombre = models.CharField(max_length=200, help_text="Nombre", blank=False, null=True)
    apellido = models.CharField(max_length=200, help_text="Apellido", blank=False, null=True)

    def __str__(self):
        return str(self.nombre)

也试过

{% if empresa.vendedor|stringformat:"s" in request.user.username %}
{% if request.user.username in empresa.vendedor|stringformat:"s" %}
{% if request.user.username == empresa.vendedor %}
{% if empresa.vendedor == request.user %}

我在这里想念什么?提前致谢。

标签: djangodjango-templates

解决方案


你有没有尝试过

{% if request.user.username == (empresa.vendedor|stringformat:"s") %}?

按位“或”( |) 的优先级低于==。请参阅https://docs.python.org/3/reference/expressions.html#operator-precedence

好的,所以Django的模板语言不是python,模板语言中的表达式我找不到很好的参考。抱歉,这里没什么可看的,继续。


推荐阅读