Задать вопрос
@sttp

Как сделать так, чтобы в апи в django выдавалась сумма полей одного объекта одной модели?

В процессе написания апи для себя решил начать ее постепенное усложнение. Это собственно говоря нечто вроде бухгалтерии, только сильно упрощенной. В модели проекта есть такие поля как цена проекта (price) и дополнительная оплата по проекту (additional_pay). Хочу чтобы было еще значение total_pay, которая по сути является суммой вышеуказанных полей. Однако если я просто в модели пишу total_pay = price + additional_pay , то просто получаю ошибку- TypeError: unsupported operand type(s) for +: 'FloatField' and 'FloatField'
Поискал в интернет, но что-то не нашел как именно нужно решать именно такую задачу. Подскажите пожалуйста, как в таком случае лучше поступить.
Мой код
class Project(models.Model):
    title = models.CharField('Имя', max_length=200)
    contract_number = models.CharField('Номер договора', max_length=200)
    description = models.TextField()
    create_date = models.DateTimeField("date published",
                                       auto_now_add=True)
    author = models.ForeignKey(User, on_delete=models.PROTECT,
                               related_name="projects")
    customer = models.ForeignKey('Customer',
                                 on_delete=models.PROTECT,
                                 related_name="projects")
    price = models.FloatField('Стоимость проекта')
    additional_pay = models.FloatField('Дополнительная оплата', blank=True,
                                       null=True)

    class Meta:
        ordering = ["-pk"]

    def __str__(self):
        return self.title[:15]

class ProjectSerializer(serializers.ModelSerializer):

    class Meta:
        fields = ('title', 'contract_number', 'description', 'customer',
                  'price', 'additional_pay', 'pk')
        model = Project

class ProjectViewSet(viewsets.ModelViewSet):
    queryset = Project.objects.all()
    serializer_class = ProjectSerializer

    def perform_create(self, serializer):
        if serializer.is_valid:
            serializer.save(author=self.request.user)
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы