我是Django的新手,我已经尝试了一段时间了
models.py
class Majitele(models.Model):
cena_p = models.DecimalField(decimal_places=2, max_digits=10, null=True)
cena_l = models.DecimalField(decimal_places=2, max_digits=10, null=True)
lv = models.IntegerField(null=True)
katastr = models.CharField(max_length=40, null=True)
jmeno = models.CharField(max_length=40, null=True)
ulice = models.CharField(max_length=30, null=True)
mesto = models.CharField(max_length=30, null=True)
psc = models.IntegerField(null=True)
v_pole = models.DecimalField(decimal_places=4, max_digits=10, null=True)
v_les = models.DecimalField(decimal_places=4, max_digits=10, null=True)
v_celkem = models.DecimalField(decimal_places=4, max_digits=10, null=True)
cena_pole = models.DecimalField(decimal_places=4, max_digits=10, null=True)
cena_les = models.DecimalField(decimal_places=4, max_digits=10, null=True)
cena_rok = models.DecimalField(decimal_places=4, max_digits=10, null=True)
nevyplaceno = models.IntegerField(null=True)
podil = models.CharField(max_length=5, null=True)
hlasu = models.IntegerField(null=True)
poznamka = models.CharField(max_length=200, null=True)
prezence = models.BooleanField(null=True)
vyplatni = models.BooleanField(null=True)
postou = models.BooleanField(null=True)
osobne = models.BooleanField(null=True)
def __str__(self):
return '%s'%(self.jmeno)
以下是我想做的事情: 取v_极值,然后取cena_p值,将它们相乘,结果应保存在cena_极字段中
我试过这个:
Majitele.objects.all().annotate(vypocet_c=F('cena_p') * F('v_pole')).update(cena_pole=vypocet_c)
有没有办法做到这一点? 谢谢你的建议
是的,您可以使用以下内容更新:
也就是说,如果
cena_pole
始终是cena_p
和v_pole
的乘积,那么最好删除此字段,并使用注释(例如在管理器中)进行过滤、计算等相关问题 更多 >
编程相关推荐