我有一个低于标准的学生。在Django Admin中,我可以编写一个代码,这样当用户键入“ActualFees”值时 它应该检查“余额费用”是否为空。如果它是空的,那么Paidfees应该在BalanceFees中复制,否则不要复制。你知道吗
同样,如果“PaidFees”是由用户输入的,那么“BalanceFees”必须计算为
BalanceFees = BalanceFees - PaidFees.
如何在Django Admin中编写代码来实现这一点?你知道吗
class Student(models.Model):
GENDER = (
('M', 'Male'),
('F', 'Female'),)
BLOOD = (
('O+','O+'),
('O-','O-'),
('A +','A +'),
('A -','A -'),
('B +','B +'),
('B -','B -'),
('AB +','AB +'),
('AB -','AB -'),
)
enroll_no = models.IntegerField()
Name = models.CharField(max_length=200,help_text='SurName MiddleName First name ')
gender = models.CharField(max_length=1,blank = True,choices=GENDER)
blood_gr = models.CharField(max_length=3,blank = True,choices=BLOOD)
category = models.CharField(max_length=200,blank = True)
photo = models.ImageField(upload_to="static",blank = True)
ActualFees = models.IntegerField(blank = True)
PaidFees = models.IntegerField(blank = True, null = True)
BalanceFees = models.IntegerField(blank = True, null = True)
PermenantAddress = models.TextField(blank = True)
Parents_Mobile = models.IntegerField(blank = True,default=0)
Personal_Mobile = models.IntegerField(blank = True,default=0)
LocalAddress = models.TextField(blank = True)
Parents_email = models.CharField(max_length=200,blank = True,default='')
Personal_email = models.CharField(max_length=200,blank = True,default='')
def __str__(self):
return self.Name
有两种方法:
AdminForm
的保存,然后如果一个字段为空,则计算相应的其他值,并进行验证以确保所有三个字段的总和都是正确的值。这种方法的问题是,如果客户机使用javascript,他们仍然可以输入无效数据onblur
事件上相应地求和。你知道吗两者的结合可能是最好的,实际的实现留给读者作为练习。你知道吗
要在中添加额外脚本,只需修改
Media
类即可:我就是这样做的。我编辑过型号.py并在学生模型PaidFees中添加了default=0 平衡费。添加这些字段后,我将执行迁移和所有操作。我以前的数据也保持原样。 我可以用save\ u model方法进行计算管理员.py你知道吗
我仍然很想知道客户端的解决方案。你知道吗
相关问题 更多 >
编程相关推荐