Короткий вопрос: как я могу передать введенные пользователем данные из формы в параметр класса моего метода?
Пользователь вводит число, и это число используется в методе для умножения другого значения изполя класса.
Я перепробовал десятки вещей, но не понял, что я делаю неправильно. Если я обновлю метод, чтобы использовать константу вместо переменной, все будет отображаться так, как я хочу в шаблоне
Я продолжаю сталкиваться с ошибкой отсутствующих позиционных аргументов.
Модель
class Product(models.Model):
sku = models.CharField(max_length=30)
price = models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return self.sku
def multi(self, n = 2): #setting up a default of 2 initiate
np = self.price * n #the method and show self.multi in template
return np
Представления
def index(request):
list = Product.objects.all()
if request.method == "POST":
form = Input(request.POST or None)
if form.is_valid():
value = request.POST.get('data')
value = form.cleaned_data.get('data')
x = Product.multi() # code broken, it does not
x(value) # initialize the method
else:
form = Input(request.POST or None)
Форма
class Input(forms.Form):
data = forms.DecimalField()
шаблон: что-то вокруг
{% for item in list %}
<div>
{{ item.sku }} {{ item.price }} {{ item.multi }} </div>
{% endfor %}