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()
Вернуться на верх