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