2016-11-03 63 views
0

我正在为一所私立学校的网站工作,在女巫中,我必须根据所选服务列表计算每个月的总价格。django admin填充内嵌模型中的字段

我使用3种型号

class Eleve(models.Model): 
    ... 

class Tarif(models.Model): 

    eleve = models.OneToOneField(Eleve, on_delete=models.CASCADE) 
    assurance = models.PositiveSmallIntegerField(default="1000") 
    frais = models.PositiveSmallIntegerField(default="750") 
    transport = models.PositiveSmallIntegerField(default="350") 
    garde = models.PositiveSmallIntegerField(default="250") 
    ... 

class Facture(models.Model): 
    month_choices = (
     ('9', 'Septembre'), 
     ('10', 'Octobre'), 
     ... 
    ) 
    eleve = models.ForeignKey(Eleve, on_delete=models.CASCADE) 
    month = models.CharField(max_length=3, choices=month_choices) 
    frais = models.BooleanField(default=True) 
    transport = models.BooleanField() 
    garde = models.BooleanField() 
    total = models.PositiveSmallIntegerField() 
    avance = models.PositiveSmallIntegerField() 
    date = models.DateField(default=datetime.datetime.today) 

Eleve ==学生

在admin.py

,模特塔里夫与制作都显示为TabularInline像这样:

class TarifInline(admin.TabularInline): 
    model = Tarif 
    formset = RequiredInlineFormSet 
    can_delete = False 

class FactureInline(admin.TabularInline): 
    model = Facture 

我需要的是当我检查运输或/和前卫时,总场应填写current_eleve.tarif.transport和cuurent_eleve.tarif.garde的总和

场总必须存储在数据库中的某些情况下..

任何帮助,将不胜感激

回答

0

要做到这一点在服务器端,你可能会想使用pre_savesignal或覆盖save方法的模型。

要在后端Web界面中执行此操作,可以使用一些JS代码片段(django.contrib.admin附带batteries included)。但是,绝对不要信任来自客户端的数据,并且始终计算服务器端的重要值。

+0

我想做它的客户端..你能赖特一些代码,例如请 – ppp0h

+0

不,对不起,我不舒服的JavaScript给它的例子:( – Art

相关问题