Django, установка даты набора форм/объекта вручную

Я хочу сделать простое приложение для автомехаников, но у меня есть проблема, которую я не могу решить самостоятельно, так как я новичок. Начнем с того, что у меня есть список услуг, оказанных автомобилю, и использованных запчастей, сгруппированных по дням в аккордеоне bootstrap (как здесь https://ibb.co/8XWJx1S). В окне редактирования я беру все услуги и запчасти за один определенный день. В шаблоне редактирования я могу добавлять наборы форм динамически (https://ibb.co/qBKL4Tk). Проблема в том, что когда я добавляю новую услугу или деталь во время редактирования, она сохраняется с другой датой, а затем в представлении списка она не группируется с услугами, которые я хочу, так как ее дата отличается. Есть ли способ установить эту дату вручную, чтобы она была такой же, как и у других объектов? Второй вариант, нежелательный, но приемлемый - обновить DATE.FIELD других объектов на основе новой даты, я пробовал, но безуспешно

models.py

class Service(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True)
    car = models.ForeignKey(Car, on_delete=models.CASCADE)
    service_name = models.CharField(max_length=150, verbose_name='Service', default=None)
    service_price = models.DecimalField(max_digits=20, decimal_places=2, default=None)
    date_added = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.service_name

    def save(self, *args, **kwargs):
        """Update parent model date_updated field whenever child object is added/edited"""
        self.car.save(update_fields=['date_updated'])
        super(Service, self).save(*args, **kwargs)


class CarPart(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True)
    car = models.ForeignKey(Car, on_delete=models.CASCADE)
    car_part = models.CharField(max_length=30, blank=True, null=True, verbose_name='Part')
    part_price = models.DecimalField(max_digits=20, decimal_places=2, null=True, blank=True)
    pdate_added = models.DateField(auto_now_add=True)

    def __str__(self):
        return f"Part: {self.car_part}  Price: {self.part_price}"

views.py

Решил, что если у кого-то возникнет проблема с этим в будущем. Мой первый подход к этому был правильным, который заключается в добавлении этих строк в UpdateView ДО ВЫЗОВА f.save()

f.date_added = self.kwargs.get('date')

Из-за этого в моделях date_added = models.DateField(auto_now_add=True) не работало. Я исследовал это и, похоже, auto_now_add не редактируется. Поэтому я изменил его на date_added = models.DateField(default=datetime.date.today)

Вернуться на верх