Я получаю сообщение об ошибке:
Ошибка IntegrityError в / projects / 1 / Issues / New / NOT NULL Не удалось выполнить ограничение: questions_issue.project_id Метод запроса: URL-адрес запроса POST: http://127.0.0.1: 8000 / projects / 1 / Issues / New / Django Версия: 3.0.3 Тип исключения: IntegrityError Значение исключения:
Сбой ограничения NOT NULL: questions_issue.project_id
Проблемы имеют внешний ключ для проекта, и я назначаю его в методе form_valid, я делаю то же самое с пользователем, и это прекрасно работает
CreateView в views.py:
class IssueCreateView(LoginRequiredMixin, CreateView):
model = Issue
fields = ['title', 'details', 'priority', 'status', 'estimated_work_hours', 'loaded_work_hours']
def form_valid(self, form):
form.instance.project = get_object_or_404(Project, pk=self.kwargs['project_id'])
print(form.instance.project)
form.instance.creator = self.request.user
return super().form_valid(form)
строка print(form.instance.project)
печатает правильный проект, поэтому он работает.
models.py:
class Issue(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
creator = models.ForeignKey(User, related_name="%(class)ss_created", on_delete=models.CASCADE)
...
...
Почему я могу назначить поле создателя пользователю в методе form_valid, но когда я это делаю то же самое для поля Project это не работает, я не понимаю.
Кто-нибудь знает, в чем может быть проблема?
Спасибо