比较上下文变量djang

2024-04-25 21:18:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如何比较Django中的上下文变量? 我想将保存在模型中的名称与request.user进行比较

{% if user %}
  {% for x in user %}
    {% ifequal x request.user %}
      <h1>working</h1>
    {% else %}
      <h1>false</h1>
    {% endifequal %}
  {% endfor %}
{% endif %}

我想要以下比较: {{x}} == {{request.user}}

上下文词典

{"user": Prod.objects.filter().values_list('name', flat=True)}

例如,admin和请求用户也是admin

我的型号:

class Prod(models.Model):
    description = models.CharField(max_length=300)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    name = models.ForeignKey(User, on_delete=models.CASCADE)

Loop

我正在使用一个上下文处理器基本.html你知道吗

from farmer_page.models import Prod
def context_variable(request):
    # .values_list('name', flat=True)
    return {"user": Prod.objects.filter()}

Tags: djangonametrueobjectsadminmodelsrequestprod
2条回答

上下文词典:

{"user": Prod.objects.filter(condition)}

模板

 {% if request.user in user %}
<h1>success</h1>
{% else %}
<h1>failed</h1>
{% endif %}

-编辑

在外键中始终使用相关名称

class Prod(models.Model):
    .
    .
    name = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_name')

视图.py

{"user": Prod.objects.filter(condition)}

html模板

{% if request.user.user_name in user %}
    <h1>success</h1>
    {% else %}
    <h1>failed</h1>
    {% endif %}

在模板中使用if template tag

{% if x == request.user %}

编辑

{% if user %}
  {% for x in user %}
    {% if x.name == request.user %}
      <h1>working</h1>
    {% else %}
      <h1>false</h1>
    {% endif %}
  {% endfor %}
{% endif %}

相关问题 更多 >