讓我們開始與模型定製獨特的領域,以ManyToManyField
#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
我想,當用戶選擇的另一Status
的default
選項來設置所有default
到False
。我怎麼能做到這一點?
編輯:
的用戶將能夠創建爲他的項目定製Status
。因此,假設用戶有2個項目 - 他們被稱爲奧迪和寶馬。
現在用戶爲Issue
創建Status
。它的名字將是open
,並且他選擇它在Project
BMW內的所有Issues
的默認值。 項目內所有問題寶馬將獲得默認狀態open
。大!
現在用戶爲Issue
創建另一個Status
。這一次的名字將是new
,並且他將其選爲默認他所有的項目!
所以,我需要的是設定第一狀態open
寶馬內default = false
東西(如用更少的查詢越好)。
一個設置模型的好主意,謝謝。但我很想保留我的初稿,因爲還有更多的模型具有相似的結構。 – Thomas
已增加另一個建議。 – colons
仍然有項目的問題。我已經提出了我的問題,也許你有一個想法? – Thomas