Поле ‘id’ ожидало число, но получило ‘create’. Метод запроса:

#django-forms

#django-forms

Вопрос:

Я создаю форму, в которой пользователи могут создавать команду. Сначала создание работает. Но после того, как я разработал представление команды с подробностями, я не могу снова создать команду. Вот подробное представление:

 def team(request, id, **kwargs):
    team = get_object_or_404(Team, id=id)
    if request.method == "POST":
        team.instance.team = team
        return redirect(reverse('team-detail', kwargs={
            'id': team.id
    }))
    context = {
        'team': team,
    }
    return render(request, 'club.html', context)
  

И теперь create-view:

 def team_create_view(request, id):
    title = 'Create'
    form = TeamCreateForm(request.POST or None, request.FILES or None)
    coach = get_coach(request.user)
    if request.method == 'POST':
        if form.is_valid():
            new_team = form.save()
            return redirect(reverse("club", kwargs={'id': form.instance.id }))
    else:
        form = TeamCreateForm()   
    context = {'title': title,'form': form}
    return render(request, "team_create.html", context)
  

url.py

     path('team/<id>/', team, name='team-detail'),
    path('team/create/', team_create_view, name='team-create'),
  

Комментарии:

1. Вы не передаете id URL формы ( team-detail' ). def team_create_view(request, id): пожалуйста, удалите id . вот так def team_create_view(request):

2. Я удаляю его, как и предполагалось, но получаю ту же ошибку.

3. пожалуйста, добавьте свою модель. team_create_view эта функция для добавления новой команды??

4. если команда существует, то обновите ее ?? иначе вставьте??