У меня небольшая проблема.Я пытаюсь проверить, существует ли уже значение статуса, и убедиться, что я не создаю другой его экземпляр, но у меня возникли некоторые проблемы.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/')
Буду очень признателен за любую помощь или указание в правильном направлении.
Спасибо всем!