Django CRUD работает, но неверный путь

@login_required(login_url='/users/login')
@permission_required('users.change_user', login_url='users/login') 
def edit(request, profile_id):
    try:
        user = User.objects.get(pk=profile_id)
    except User.DoesNotExist:
        raise Http404("Profile does not exist")
    return render(request, 'UI/edit.html', {'users': user})


def processedit(request, profile_id):
    user = get_object_or_404(User, pk=profile_id)
    profile_pic = request.FILES.get('image')
    try:
        fname = request.POST.get('fname')
        lname = request.POST.get('lname')
        email = request.POST.get('email')
        position = request.POST.get('position')
    except (KeyError, User.DoesNotExist):
        return render(request, 'UI/detail.html', {'user': user, 'error_message': "Problem updating record"})
    else:
        user_profile = User.objects.get(id=profile_id)
        user_profile.user_fname = fname
        user_profile.user_lname = lname
        user_profile.user_email = email
        user_profile.user_position = position
        if profile_pic:
            user_profile.user_image = profile_pic
        user_profile.save()
        return HttpResponseRedirect(reverse('users:detail', args=(profile_id,)))

из файла views.py

здесь из edit.html

{% extends 'base.html' %}

{% block title %}
    {{ user.user_fname }} {{ user.user_lname }}
{% endblock %}

{% block content %}

{% if error_message %}
    <p class="alert alert-danger">
        <strong>{{error_message}}</strong>
    </p>
{% endif %}
        <h1> Edit User Profile</h1>
    <form action="{% url 'users:processedit' user.id %}" method="post" enctype="multipart/form-data">
        {% csrf_token %} 

        <div class="form-group">
            <label>First Name</label>
            <input type="text" name="fname" id="fname" class="form-control" required value="{{ users.user_fname }}">
        </div>

        <div class="form-group">
            <label>Last Name</label>
            <input type="text" name="lname" id="lname" class="form-control" required value="{{ users.user_lname }}">
        </div>

        <div class="form-group">
            <label>Email</label>
            <input type="text" name="email" id="email" class="form-control" required value="{{ users.user_email }}">
        </div>

        <div class="form-group">
            <label>Position</label>
            <input type="text" name="position" id="position" class="form-control" required value="{{ users.user_position }}">
        </div>

        <div class="form-group"><br>    
            <label>User Image</label><br><br>
            <input type="file" name="image" id="image">
        </div>
        <br>
        <button type="submit" class="btn btn-primary mt-2">Update</button>
        
    </form>

{% endblock %}

Когда я пытаюсь редактировать, он редактирует первого пользователя из базы данных, а не выбранного пользователя, ошибка не появляется, он работает, но неверный маршрут/путь

Как мне это исправить? До этого все работало правильно.

Я создал двух пользователей, оба со статусом super и staff, это тоже нормально?

В настоящее время я снова ищу/отлаживаю

Создан новый пользователь, данные уникальны, теперь, когда я обновляю его, он говорит следующее

IntegrityError at /users/1/processedit/

вы допустили ошибку в контекстной переменной.

@login_required(login_url='/users/login')
@permission_required('users.change_user', login_url='users/login') 
def edit(request, profile_id):
    user = get_object_or_404(User, pk=profile_id)
    return render(request, 'UI/edit.html', {'user': user})

Замените "users" на "user" в вашем контексте рендеринга, я думаю, это будет лучше.

И вы должны унифицировать переменную в вашем шаблоне:

{% extends 'base.html' %}

{% block title %}
    {{ user.user_fname }} {{ user.user_lname }}
{% endblock %}

{% block content %}

{% if error_message %}
    <p class="alert alert-danger">
        <strong>{{error_message}}</strong>
    </p>
{% endif %}
        <h1> Edit User Profile</h1>
    <form action="{% url 'users:processedit' user.id %}" method="post" enctype="multipart/form-data">
        {% csrf_token %} 

        <div class="form-group">
            <label>First Name</label>
            <input type="text" name="fname" id="fname" class="form-control" required value="{{ user.user_fname }}">
        </div>

        <div class="form-group">
            <label>Last Name</label>
            <input type="text" name="lname" id="lname" class="form-control" required value="{{ user.user_lname }}">
        </div>

        <div class="form-group">
            <label>Email</label>
            <input type="text" name="email" id="email" class="form-control" required value="{{ user.user_email }}">
        </div>

        <div class="form-group">
            <label>Position</label>
            <input type="text" name="position" id="position" class="form-control" required value="{{ user.user_position }}">
        </div>

        <div class="form-group"><br>    
            <label>User Image</label><br><br>
            <input type="file" name="image" id="image">
        </div>
        <br>
        <button type="submit" class="btn btn-primary mt-2">Update</button>
        
    </form>

{% endblock %}
Вернуться на верх