我有一个小问题。我试图检查状态的值是否已经存在,并确保我没有创建它的另一个实例,但我遇到了一些麻烦。防爆。如果项目状态曾经是“引用”,我不希望再次使状态为“引用”。现在,我检查以确定用户是否选择编辑,然后单击提交,状态不重复。但是,如果用户选择了其他状态,例如“已完成”,则无法阻止他们返回并再次选择“引用”。
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/')
任何帮助,或指向我正确的方向将非常感激。
谢谢大家!
答案 0 :(得分:2)
value = models.CharField(max_length=20, choices=STATUS_CHOICES, verbose_name='Status', unique=True)