让我们从模型开始
#models.py
class Project(models.Model):
owner = models.ForeignKey(User)
name = models.CharField(max_length=100)
class Issue(models.Model):
project = models.ForeignKey(Project)
title = models.CharField(max_length=100)
status = models.ForeignKey('Status')
class Status(models.Model):
name= models.CharField(max_length=10, help_text=u'eg open, closed...')
default = models.BooleanField(default=False)
project = models.ManyToManyField(Project)
def save(self, *args, **kwargs):
if self.default:
#self.__class__.objects.filter(default=True, project=self.project).update(default=False)
pass
我想将所有设置default
为False
当用户选择另一个选项Status
时。default
我怎么能做到这一点?
编辑:
用户将能够Status
为他的项目创建自定义。所以,假设用户有 2 个项目——它们被称为Audi和BMW。
现在用户Status
为Issue
. 它的名字将是open
,他选择它作为BMWIssues
中所有的默认值。项目内的所有问题BMW将获得默认状态。伟大的!Project
open
现在用户Status
为Issue
. 这次名称将是new
,他选择它作为他所有项目的默认名称!
所以,我需要的是将BMWopen
中的第一个状态设置为.default = false