как я могу вычислить значение из пользовательского ввода, которое не сохраняется в базе данных, и значение из базы данных с помощью django

#python #html #django #view #model

Вопрос:

Я делаю сайт с подсчетом калорий в продуктах, поэтому мне нужно выполнить это действие. У меня есть разные объекты продуктов, и для каждого — разное значение в поле «калории на 100 грамм». Что на самом деле мне нужно сделать, так это получить от пользователя значение того, сколько граммов продукта он хочет, а затем умножить его на мое значение из базы данных и разделить на 100, но без сохранения. Это мой код:

 views.py:
class CurrentProductView(FormView):
    template_name = "cur_product.html"
    form_class = ProductForm
    success_url = reverse_lazy("product")

    def form_valid(self, form):
        obj = form.save(commit=False)
        calc_value = (obj.cur_weight * obj.calories) / 100
        return HttpResponse(calc_value)

forms.py:
class ProductForm(forms.ModelForm):
    cur_weight = forms.IntegerField()

    class Meta:
        model = Product
        fields = ["calories"]

models.py:
class Product(models.Model):
    name = models.CharField(max_length=100)
    calories = models.PositiveIntegerField() #calories per 100 gram
    description = models.TextField(max_length=100, blank=True, null=True)
    image = models.ImageField(blank=True, null=True)
 

HTML:

 {% block content %}
    <form method="post">
        {% csrf_token %}
        {{ form.cur_weight }}
        <input type="submit" value="Count">
    </form>
{% endblock %}
 

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.