Получение NOT NULL CONSTRAINT из обоих представлений с помощью django

У меня есть приложение, которое отображает папку, а также позволяет создать вложенную папку в этой папке. Как в папку, так и в подпапку можно загружать файлы. Всякий раз, когда я пытаюсь это сделать, я получаю ошибку NOT NULL CONSTRAINT. Если я пытаюсь загрузить файл в родительскую папку, я получаю NOT NULL constraint failed: documents_document.subfolder_id, а если я пытаюсь загрузить файл во вложенную папку, я получаю NOT NULL constraint failed: documents_document.folder_id. детальный вид родительской папки

@login_required
@group_required('Document Supervisor')
def folder_detail(request, pk):
    folder = Folder.objects.get(id=pk)
    documents = Document.objects.filter(folder=folder)
    form = DocumentForm()
    subfolders = SubFolder.objects.filter(folder=folder)
    if request.method == "POST":
        form = DocumentForm(data=request.POST or None, files=request.FILES or None)
        if form.is_valid():
            form = form.save(commit=False)
            form.folder = folder
            form.created_by = request.user
            form.name = str(form.file.url)
            form.name = form.name.replace("/media/", "")
            form.save()

            
            messages.success(request, "Document added successfully!")
            return redirect(f"/documents/folder/{folder.id}")


    context = {
        "folder": folder,
        "documents": documents,
        "form": form,
        "subfolders": subfolders,
    }

    return render(request, "documents/folder_detail.html", context)

просмотр подпапок

@login_required
@group_required('Document Supervisor')
def subfolder_detail(request, pk):
    sub = SubFolder.objects.get(id=pk)
    documents = Document.objects.filter()
    form = DocumentForm()
    if request.method == "POST":
        form = DocumentForm(data=request.POST or None, files=request.FILES or None)
        if form.is_valid():
            form = form.save(commit=False)
            form.sub = sub
            form.created_by = request.user
            form.name = str(form.file.url)
            form.name = form.name.replace("/media/", "")
            form.save()

            messages.success(request, "Document added successfully!")
            return redirect(f"/documents/subfolder_detail/{sub.id}")

    context = {
        "sub": sub,
        "documents": documents,
        "form": form,
    }
    return render(request, "documents/subfolder_detail.html", context)

Модели

class Folder(models.Model):
    created_date = models.DateTimeField(auto_now_add=True, auto_now=False, blank=True, null=True)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='cb_user_fold')
    name = models.CharField(max_length=255, blank=True, null=True, unique=True)
    updated_date = models.DateTimeField(auto_now_add=False, auto_now=True, null=True, blank=True)
    updated_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='ub_user_fold')

    def __str__(self):
        return self.name


class SubFolder(models.Model):
    created_date = models.DateTimeField(auto_now_add=True, auto_now=False, blank=True, null=True)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='cb_sub')
    name = models.CharField(max_length=255)
    folder = models.ForeignKey(Folder, on_delete=models.CASCADE)
    updated_date = models.DateTimeField(auto_now_add=False, auto_now=True, null=True, blank=True)
    updated_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='ub_sub')


    def __str__(self):
        return self.name

class Document(models.Model):
    created_date = models.DateTimeField(auto_now_add=True, auto_now=False, blank=True, null=True)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='cb_user_doc')
    name = models.CharField(max_length=255, blank=True, null=True)
    file = models.FileField(upload_to='documents/', blank=True, null=True)
    folder = models.ForeignKey(Folder, on_delete=models.CASCADE)
    subfolder = models.ForeignKey(SubFolder, on_delete=models.CASCADE)
    updated_date = models.DateTimeField(auto_now_add=False, auto_now=True, null=True, blank=True)
    updated_by = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='ub_user_doc')

    @property
    def extension(self):
        word_list = ['.doc', '.pages', '.docx', '.odt', 'txt']
        image_list = ['.png', '.jpg', '.jpeg']
        spreadsheet_list = ['.xls', '.csv', '.xlsx', '.odf']
        pdf_list = ['.pdf']
        name = os.path.splitext(self.name)
        ext = name[1]

        return name[1]

    def __str__(self):
        return self.name
Вернуться на верх