我正在做一个简单的{% if %}
比较,但是无法获得匹配的字符串。
{% if request.user.username == empresa.vendedor|stringformat:"s" %}
我检查了课程,并且:
request.user.username
是<class 'str'>
。
empresa.vendedor|stringformat:"s"
是<class 'str'>
。
我打印一个案子,并且:
request.user.username
是Mariano
。
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 %}
我在这里想念什么?预先感谢。
答案 0 :(得分:0)
您是否尝试过
> update 9 1 [3,4,5]
Just [3,9,5]
> update 4 2 [3,4,5]
Just [3,4,4]
> update 6 5 [3,4,5]
Nothing
?
按位'或'( {% if request.user.username == (empresa.vendedor|stringformat:"s") %}
)的优先级低于|
。参见https://docs.python.org/3/reference/expressions.html#operator-precedence
好的,所以Django的模板语言是 not python,我找不到模板语言中的表达式的良好参考。抱歉,这里什么也看不见,继续前进。
答案 1 :(得分:0)
如何使用with
指令?
我认为问题在于我们不能在条件内使用管道指令。
{% with empresa.vendedor|stringformat:"s" as data %}
{% if request.user.username == data %}
// do something
{% endif %}
{% endwith %}
我曾经遇到过类似的问题,并且通过此解决方案得以解决。 我希望它能起作用。
答案 2 :(得分:0)
I discovered a typo I was using empresa.vendedor and it should have been Vendedor due to a legacy database. Sorry and thanks to all.