功能保存模型Django



有一个应用程序模型。它的含义很简单,作者提交了申请,站点管理员任命承包商执行,完成后,该申请完成了该申请。一切似乎都很好,创建了申请模型,确保在管理员选择承包商后,申请立即收到了封闭状态。

但是,这是一个问题,当管理员关闭应用程序(状态为"已完成"(时,我无法应对,那么该应用程序不会获取已完成的状态,因为艺术家由于在该模型。

即使将承包商任命为本申请,如何使申请的状态完成?事先,我请您为我的问题辩护,我仍然是初学者。非常感谢所有能提供帮助的人(

models.py

class Application(models.Model):
    STATUS_CHOICES = (
        ('In_the_work', 'В работе'),
        ('New', 'Новая'),
        ('Complited', 'Завершена')
    )
 author = models.ForeignKey('auth.User', related_name = '+', verbose_name = 'Автор')
 title = models.CharField(max_length=50, verbose_name = 'Заголовок')
 text = models.TextField(verbose_name = 'Описание проблемы')
 room = models.CharField(max_length = 4, verbose_name = 'Кабинет')
 published_date = models.DateField(blank=True, null=True, default = 
 datetime.datetime.now, verbose_name = 'Дата')
 status = models.CharField(max_length=15, choices=STATUS_CHOICES, 
 default='Новая', verbose_name = 'Статус')
 owner = models.ForeignKey('auth.User', related_name = '+', null = True, 
 blank = True, limit_choices_to={ 'groups__name': 'Техническая поддержка'}, 
 verbose_name = 'Исполнитель') 
def save(self, *args, **kwargs):
    if self.owner != None:
        self.status = 'In_the_work'
    super(Application, self).save(*args, **kwargs)

我不确定您对被分配给应用程序的"艺术家"的含义。

当您表示将承包商分配给该承包商时,我认为您指的是将"所有者"(所有者字段价值(分配给应用程序模型。如果是这种情况,错误是,在您的保存方法中,您正在检查所有者是否与众不同,在这种情况下,您始终覆盖状态为" in_the_work"。

所以也许解决方案会像:

def save(self, *args, **kwargs):
    if self.status != 'Complited' and self.owner is not None:
        self.status = 'In_the_work'
    super(Application, self).save(*args, **kwargs)

这样,您只有在状态与首先侵犯的情况不同的情况下,您才会覆盖状态

谢谢。

最新更新