From Django.db import models
Class multi(models.Model):
Varone = models.Integer()
Vartwo = varone * 2
如何在此类中进行计算,并在 Django 的管理页面中显示该计算。
我试图谷歌找不到答案。
你需要覆盖保存方法
class Multi(models.Model):
var_one = models.IntegerField(verbose_name = "first number")
var_two = models.IntegerField(blank=True, null=True,verbose_name = "second number")
def save(self, *args, **kwargs):
self.var_two = self.var_one * 2
super(Multi,self).save()
def __str__(self):
return "multi method => {0} * 2 = {1}".format(self.var_one, self.var_two)
将此添加到admin.py
from .models import Multi
admin.site.register(Multi)
首先,python已经定义了语法,你应该遵循这些东西。
您可以通过定义property
来显示var_2
,如下所示,
from django.db import models
class Multi(models.Model):
var_1 = models.IntegerField()
@property
def var_2(self):
return self.var_1 * 2
然后将admin
覆盖为(更改admin.py
(
from django.contrib import admin
class MultiAdmin(admin.ModelAdmin):
list_display = ('id', 'var_1', 'var_2')
admin.site.register(Multi, MultiAdmin)
你将得到这样的输出