Проверка дубликатов

У меня небольшая проблема. Я пытаюсь проверить, существует ли уже значение статуса, и убедиться, что я не создаю еще один его экземпляр, но у меня возникли проблемы. Ex. Если статус проекта был когда-то «Цитата», я не хочу, чтобы снова иметь статус «Цитата». Прямо сейчас я проверяю, выбирает ли пользователь «Редактировать», а затем нажимает «Отправить», статус не дублируется. Однако, если пользователь выбрал другой статус, например «завершено», ничто не мешает ему вернуться и снова выбрать «цитата».

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/')

Любая помощь или указание меня в мы будем очень признательны за правильное направление.

Всем спасибо!

1
задан TheLifeOfSteve 21 October 2010 в 14:16
поделиться