Есть ли способ использовать поле модели в условном условии через шаблон Django? - PullRequest
0 голосов
/ 08 ноября 2019

Я создаю шаблон, который отображает кнопку, но только если у конкретного пользователя есть поле «путь» в модели. Как я могу использовать атрибут модели внутри условного оператора?

Это мой текущий код:

models.py:

from django.db import models
from django.contrib.auth.models import User

class Path(models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE)
    path = models.CharField(max_length = 255, blank=False, null=False)   #Will not accept empty string or None 
    created_date = models.DateTimeField(auto_now = True)

    def __str__(self):
        return f"{self.user.username}"

template.html:

{% if request.user.path.path %}
    <button class="btn btn-outline-info" onclick="function()" id='button'> Initiate Index </button>
{% else %}
    <button class="btn btn-outline-info" onclick = "function()" id = 'abort_button'> Initiate Index </button>
{% endif %}

jquery в template.html:

{% block javascript %}
  <script type="text/javascript">
    $(document).ready(function() {   
        $("#button").click(function() {  #If path is available
          alert('Thank you...');
        });

        $("#abort_button").click(function() {  #If path is not available
            alert('Please insert path');
        });
    });
  </script>
{% endblock %}

Заранее спасибо.

1 Ответ

0 голосов
/ 08 ноября 2019

Поскольку ваша модель Path имеет отношение OneToOne к модели User, вы можете проверить, есть ли у вашего вошедшего в систему пользователя поле пути в шаблоне

{% if request.user.path.path %}
    <button class="btn btn-outline-info" onclick="function()" id='button'> Initiate Index </button>
{% else %}
    No button
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...