IntegrityError Django ForeignKey устанавливает значение none
У меня возникла проблема с установкой ForeignKey в одном из полей моей модели для переменной author. См. ниже:
class BugTracker(models.Model):
project_number= models.IntegerField(primary_key=True)
assignee= models.ForeignKey(Developer, on_delete=models.CASCADE)
priority = models.CharField(max_length=10, choices=priority_choices)
summary=models.TextField()
status= models.CharField(max_length=20, choices=progress)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
created_at=models.DateTimeField(default=timezone.now)
updated_at=models.DateTimeField(auto_now=True)
def __str__(self):
return self.summary
def get_absolute_url(self):
return reverse("bug_list")
"IntegrityError at /projects/create/
NOT NULL constraint failed: core_bugtracker.author_id
Request Method: POST
Request URL: http://127.0.0.1:8000/projects/create/
Django Version: 4.1.5
Exception Type: IntegrityError
Exception Value:
NOT NULL constraint failed: core_bugtracker.author_id"
Как только я добавляю "null=True" к полю ForeignKey, он работает, и я не получаю ошибки, но шаблон показывает мою переменную ({bug.author}} равной "None" независимо от того, под каким именем я вошел в систему. Я пробовал удалять свою базу данных и файлы миграции несколько раз, но это все еще не работает. Любая помощь будет оценена по достоинству
Если при сохранении модели BugTracker вы не передаете "author" как поле, вы получите ({bug.author}} как None, потому что вы установили "null=True" в объявлении поля "author".
Если вы хотите установить/добавить объект автора к объекту bug_tracker_object, вы можете сделать следующее. (Примечание: bug_tracker_object - это объект BugTracker, который вы заполнили с помощью таких полей, как номер_проекта, назначенный сотрудник, приоритет и т.д.)
author_object = Author.objects.get(id=<your_author_id>)
bug_tracker_object.author_object = author_object
bug_tracker_object.save()