>
장고에서 컨텍스트 변수를 어떻게 비교할 수 있습니까? 모델에 저장 한 이름을 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  그리고 request.user도 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)

루프

base.html에서 컨텍스트 프로세서를 사용하고 있습니다

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


  • 답변 # 1

    템플릿에서 템플릿 태그 인 경우 사용 :

    {% 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 %}
    
    

  • 답변 # 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')
    
    

    views.py

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

    html 템플릿

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

  • 이전 ggplot2 - R에서 커널 밀도 플롯 그리드를 만드는 방법
  • 다음 android - 자유 낙하 감지를 통한 Google 피트니스