Я изучаю Python / Django, и у меня возникают некоторые затруднения с пониманием того, как вы вызываете / передаете аргумент в методы Models
В моем случае я беру десятичный ввод из формы, передаю его в метод моей моделии пересчитать новое значение на основе данных, которые Модель уже имеет в Sqlite3 db
, и отобразить это в моем шаблоне
Если я удалю аргумент переменной в методе модели и умножу на константу напрямуюв методе модели код работает и прекрасно отображается в шаблоне
Модели:
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=30)
price = models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return self.name
def n_price(self, newprice):
n_price = self.price * newprice
return n_price
Форма:
from django import forms
class MultiForm(forms.Form):
data = forms.DecimalField(max_digits=5, decimal_places=2)
Просмотры:
from django.shortcuts import render
from .models import Product
from .forms import MultiForm
def multi(request):
list = Product.objects.all()
if request.method == "POST":
form = MultiForm(request.POST or None)
if form.is_valid():
data = request.POST.get('model')
p = Product.n_price()
p(data)
return render(request, 'viewinventory/multi.html', {'form': form, 'list': list, 'data': data})
Шаблон
... `` `
{% block content %}
<h2>New price</h2>
<form method="POST" class="price-form">
{% csrf_token %}
{{ form }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% endblock%}
{% for list in list %}
<div>
{{ list.name }} {{ list.price }} {{ list.n_price }} </div>
{% endfor%}
... `` `