Я создаю модель в django Я хочу установить значение month_wage в поле Month_wage = working_days * daily_wage в аннотации
from django.db.models import F
class AnnotationManager(models.Manager):
def __init__(self, **kwargs):
super().__init__()
self.annotations = kwargs
def get_queryset(self):
return super().get_queryset().annotate(**self.annotations)
class DetailsList(models.Model):
month_list=models.ForeignKey('MonthList',on_delete=models.CASCADE,verbose_name='لیست ماهانه ')
worker=models.ForeignKey('Workers',on_delete=models.CASCADE,verbose_name=' نام کارگر')
working_days=models.SmallIntegerField('تعداد روز کارکرد')
daily_wage=models.BigIntegerField('دستمزد روزانه')
advantage=models.BigIntegerField('مزایای ماهانه')
_monthly_wage=0
objects = AnnotationManager(
monthly_wage=F('working_days') * F('daily_wage')
)
, но поскольку working_days - это smallinteger, а daily_wage - biginteger
this повышение ошибки:
Выражение содержит смешанные типы: SmallIntegerField, BigIntegerField. Вы должны установить поле output_field.
Как я могу это исправить