При отправке формы на сайте не отправляется id user'а. Django

Помогите с проблемой ОШИБКА: значение NULL в столбце "user_id" отношения "todos_category" нарушает ограничение NOT NULL DETAIL: Ошибочная строка содержит (11, asd, asd, null). forms.py:

class CategoryCreateForm(forms.ModelForm):
    class Meta:
        model = Category
        fields = [
            'name',
            'description',
            ]

В fields засунуть user_id я не могу, так как user_id должен автоматически добавляться в форму в зависимости от нынешнего юзера.. Вот только как это сделать я не очень понимаю. views.py:

def category_create(request):
    form = CategoryCreateForm()
    if request.method == "POST":
        form = CategoryCreateForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect("category_list")
    context = {'form':form}
    return render(request, 'todolist/category_create.html', context)

models.py:

class Category(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    description = models.TextField(blank=True)

null=True в поле я ставить не могу((


Ответы (1 шт):

Автор решения: Za Ars

Тогда попробуйте так

def category_create(request):
    if not request.user.is_authenticated:
        raise Exception('AUTH PLEASE')

    form = CategoryCreateForm()
    if request.method == "POST":
        form = CategoryCreateForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user
            obj.save()
            form.save_m2m()
            return redirect("category_list")
    context = {'form':form}
    return render(request, 'todolist/category_create.html', context)

Если будет исключение 'AUTH_PLEASE' то надо разбираться с вашей авторизацией

→ Ссылка