Как я могу визуализировать кнопку на основе условия в html шаблонах | Django - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь отобразить кнопку на основе условия.

Здесь я проверяю, находится ли комбо в корзине, затем я визуализирую кнопку удаления только для этой комбинации.

Но я не могу этого сделать.

Здесь в поле ComboCartItem class combo указано ForeignKey класса Combo, а в поле Cart class combo_item - ManyToManyField класса ComboCartItem

Итак, в целом, если мы хотим отобразить список всех комбинаций, которые присутствуют в корзине, мы можем сделать это с помощью {% for item in cart.combo_item.all %}{{item.combo}}{% endfor %}

Но это не так. Не работаю, пока иду на проверку состояния.

Пожалуйста, помогите.

{% if combo in cart.combo_item.all %}
        <button type="submit" class="btn btn-success">Remove?</button>
    {% endif %}

Это не работает. Пожалуйста, помогите!

l.html

<form method="POST" action="{% url 'carts:combo_add_to_cart' %}" class="form">
    {% csrf_token %}
    <input type="hidden" name="combo_id" value="{{ combo.id }}">
    <button type="submit" class="btn btn-success">Add to Cart</button>
    {% if combo in cart.combo_item.all %}
        <button type="submit" class="btn btn-success">Remove?</button>
    {% endif %}
</form>

combo - models.py

class Combo(models.Model):
    title = models.CharField(max_length=120)

cart - models.py

class ComboCartItem(models.Model):
    combo = models.ForeignKey(Combo, blank=True, null=True, on_delete=models.CASCADE)

class Cart(models.Model):
    combo_item = models.ManyToManyField(ComboCartItem, blank=True, null=True)

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете решить эту проблему другим способом: то, что вы здесь проверяете, с условием, сделайте это в ваших представлениях, передайте его, добавив в ваши контекстные данные, и получите здесь логическое значение и выполните операции в шаблоне django .

...