Как передать функцию внутрь view в Django?

  • 13 августа 2023 г. 12:05
Ответы на вопрос 3
В Django вы можете передать функцию внутрь шаблона, используя аргумент "context" при вызове функции render. В вашем случае, вы можете передать функцию "toPercent" в шаблон следующим образом:

```python
@require_http_methods(["GET"])
def motherboard(request):
    data = json.loads(readCsv('motherboard', '.').to_json(orient='records'))
    
    def toPercent(price, discount):
        # ваша реализация функции toPercent
        
    return render(request, 'home/index.html', {"data": data, "toPercent": toPercent})
```

Затем, вы можете использовать функцию "toPercent" в HTML следующим образом:

```html
<div class="last-bid">
    {{ result.price }} ₽{% if result.discount %} / {{ result.discount }} ₽ - {{ toPercent(result.price, result.discount) }}% {% endif %}
</div>
```

В этом примере, функция "toPercent" будет доступна внутри шаблона как переменная "toPercent", и вы можете вызвать ее, передав аргументы, как в примере выше.
В шаблон HTML передавай только значения, не используй внутри него функции. Если тебе нужно реализовать более сложное, рекомендую изучить JavaScript и Ajax. 
 Если ты хочешь передавать только значения в шаблон HTML, избегай использования функций внутри него. Для более сложных задач рекомендуется изучить JavaScript и Ajax.
Похожие вопросы