禁止直接分配到多对多集合的前端改用 croft.set()

问题描述

class Balance(models.Model):
croft = models.ForeignKey(Croft,on_delete=models.CASCADE,verbose_name='Участок')
remains = models.DecimalField(max_digits=10,decimal_places=2,default=0,blank=True,null=True,verbose_name='Остаток')
date_change = models.DateTimeField(auto_Now=True,verbose_name='Дата изменения')

def __str__(self):
    return self.croft.number

@receiver(post_save,sender=Croft)
def create_balance(sender,instance,created,**kwargs):
    if created:
        Balance.objects.create(croft=instance)

税收计算模型

class Contributions(models.Model):
TYPE_CHOICES = (
    ('membership_fees','Членские взносы'),('targeted_contributions','Целевые взносы')
)
UNITS_CHOICES = (
    ('m2','за кв.м.'),('croft','за участок'),('per_hundred','за сотку')
)
name = models.CharField(max_length=120,verbose_name='Наименование')
type_contribution = models.CharField(max_length=100,choices=TYPE_CHOICES,verbose_name='Вид взносов')
croft = models.ManyToManyField(Balance,verbose_name='Участок')
sum_contribution = models.DecimalField(max_digits=10,verbose_name='Размер взноса')
units = models.CharField(max_length=100,choices=UNITS_CHOICES,verbose_name='ед. изм.')
date_contribution = models.DateField(default='',verbose_name='Срок уплаты')
all_crofts = models.BooleanField(default=True,verbose_name='Действует для всех участков')
round_to_range = models.BooleanField(default=False,verbose_name='Округлять в большую сторону')

def __str__(self):
    return self.name

def save(self,*args,**kwargs):
    if not self.id:
        super(Contributions,self).save(*args,**kwargs)
    self.croft = self.croft
    self.croft.remains = self.croft.remains - (self.sum_contribution * self.croft.croft.area)
    self.croft.save()
    return super(Contributions,**kwargs)

如何正确重新定义多对多字段的计税模型。 禁止直接分配到多对多集合的前端。改用 croft.set()。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...