1
我有一个小问题。我试图检查状态的值是否已经存在,并确保我不创建它的另一个实例,但我遇到了一些麻烦。防爆。如果项目状态曾经是“Quote”,我不希望能够再次显示状态“Quote”。现在,我检查以确定用户是否选择编辑,然后单击提交,状态不会重复。但是,如果用户选择了另一个状态,如“已完成”,则无法阻止他们再次返回并再次选择“报价”。检查重复项目
models.py
class Status(models.Model):
project = models.ForeignKey(Project, related_name='status')
value = models.CharField(max_length=20, choices=STATUS_CHOICES, verbose_name='Status')
date_created= models.DateTimeField(auto_now=True)
class Project(models.Model):
...
views.py
if form.is_valid():
project = form.save(commit=False)
project.created_by = request.user
project.save()
old_status = project.current_status()
if not old_status or old_status.value != form.cleaned_data.get('status', None):
#add status instance
project.status.create(
value = form.cleaned_data.get('status', None)
)
return HttpResponseRedirect('/project/')
任何帮助,或者指着我在正确的方向,将不胜感激。
谢谢大家!
太棒了!那是我错过的小事。还有一个问题,我该如何处理这个错误?现在我只是得到Django的错误页面?再次感谢...我仍然在学习 – TheLifeOfSteve 2010-10-21 14:25:10
使用尝试/除非您尝试“保存”。 – user470379 2010-10-21 14:27:45
非常感谢! – TheLifeOfSteve 2010-10-21 14:32:38