Py学习  »  问与答

新人求问 model 的计算是怎么操作的

poooooy • 10 年前 • 2893 次点击  
class Test(models.Model):
    t1=models.SmallIntegerField()
    t2=models.FloatField()

我想在模板里显示t1和t2的乘积,那么应该在哪一步进行操作呢?models.py views.py ?该如何操作

如果我想把这个乘积直接放到数据库里 可不可以改成

class Test(models.Model):
    t1=models.SmallIntegerField()
    t2=models.FloatField()
    def t3():
        return t1*t2

诚心求问

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1221
文章 [ 3 ]  |  最新文章 10 年前
newlife
Reply   •   1 楼
newlife    10 年前
  1. 这个事情可以交给前端去做,写js实现
  2. 可以多存储一个字段,重写save方法,每次t1,t2更新的时候重新计算
Neuer93
Reply   •   2 楼
Neuer93    10 年前

我觉得在view中取出来在计算比较好。 不然你更新t1,t2还要更新那个乘积比较麻烦。。。

巴兔尔-weibo
Reply   •   3 楼
巴兔尔-weibo    10 年前
models.py
class Test(models.Model):
    t1 = models.IntegerField()
    t2 = models.IntegerField()
    result = models.IntegerField()

forms.py
class TestForm(forms.Form):
    t1 = forms.IntegerField()
    t2 = forms.IntegerField()

views.py
def calculate(request):
    if request.method == "POST":
        form = TestForm(request.POST)
        if form.is_valid():
            form_data = form.clean_data
            t = Test.objects.create(t1=form_data['t1'],t2=form_data['t2'],result=form_data['t1'] * form_data['t2'])
            t.save()
        else:
            return HttpResponse("请输入数字")
    else:
        form=TestForm()

    return render_to_response("test.html", {})

template

test.html blablabla