Как избавиться от TypeError в /task_create/, quote_from_bytes() ожидаемые байты

Я на django 4.0.4 и имею доброкачественную, но раздражающую проблему с вышеуказанным кодом ошибки.

Предыдущие ответы на подобные вопросы мне не помогают.

Когда я делаю backspace, (неудобство, о котором пользователь может и не думать) все на самом деле прошло хорошо, список и детальные представления правильно обновляются.

Форма создания остается такой же, как и была, как будто она не была сохранена, и вид не меняется на детальный вид, как предлагает get_absolute_url, что может привести к повторной обработке.

Код из предыдущих моделей точно такой же, где это имеет значение. Примером может служить представление TaskCreate, которое вызывает проблему, и представление ObjectiveCreate непосредственно перед ним, которое работает как ожидалось.

В представлениях я нахожу пользователя и его/ее сущность (даже если есть одна сущность), и обрабатываю этого пользователя как супервизора1, а также автоматически обрабатываю сущность.

Ошибка находит ошибку в "return super().form_valid(form)" представления TaskCreate, но не в том, что в представлении ObjectiveCreate.

Вот код для двух представлений `class ObjectiveCreate(LoginRequiredMixin, CreateView):

model = Objective
form_class = ObjectiveCreateForm
template_name = "internalcontrol/objective_create_form.html"

def form_valid(self, form):

    user = self.request.user
    profile = Profile.objects.get(user=user)
    entity = profile.entity
    new_profile = Profile.objects.get(user=user, entity=entity)
    form.instance.supervisor1 = new_profile
    form.instance.entity = entity
    return super().form_valid(form)

def get_form_kwargs(self):

    kwargs = super(ObjectiveCreate, self).get_form_kwargs()
    kwargs["request"] = self.request
    return kwargs

class TaskCreate(LoginRequiredMixin, CreateView):

model = Task
form_class = TaskCreateForm
template_name = "internalcontrol/task_create_form.html"

def form_valid(self, form):

    user = self.request.user
    profile = Profile.objects.get(user=user)
    entity = profile.entity
    new_profile = Profile.objects.get(user=user, entity=entity)
    form.instance.supervisor1 = new_profile
    form.instance.entity = entity
    return super().form_valid(form)

def get_form_kwargs(self):

    kwargs = super(TaskCreate, self).get_form_kwargs()
    kwargs["request"] = self.request
    return kwargs

Соответствующие get_absolute_url для обеих моделей следующие:

def get_absolute_url(self):
    return reverse(
        "internalcontrol:objective_detail",
        kwargs={"pk": self.pk},
    )

и

def get_absolute_url(self):
    return (
        reverse("internalcontrol:task_detail", kwargs={"pk": self.pk}),
    )

Думаю, проблема в конечном адресе, на который должен быть перенаправлен пользователь.

Чтобы решить эту проблему, сначала отредактируйте функцию get_absolute_url, чтобы она возвращала string, а не tuple.

Если все еще не работает, попробуйте добавить success_url к представлению с помощью reverse_lazy

Вернуться на верх