update(CRUD) - Django

urls

pythonApp\crud\crud\member\urls.py

from django.urls import path
from . import views

urlpatterns = [
  path('', views.index, name='index'),
  path('create', views.create, name='create'),
  path('edit/<int:num>', views.edit, name='edit'),
]

templates

pythonApp\crud\crud\member\templates\member\edit.html

{% load static %}
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h1>member/edit</h1>
  <table>
    <form action="{% url 'edit' id %}" method="post">
      {% csrf_token %}
      {{ form.as_table }}
      <tr>
        <td></td>
        <td><input type="submit" value="click"></td>
      </tr>
    </form>
  </table>
</body>
</html>

views

pythonApp\crud\crud\member\views.py

def edit(request, num):
  obj = User.objects.get(id=num)
  if(request.method == 'POST'):
    user = UserForm(request.POST, instance=obj)
    user.save()
    return redirect(to='/member')
  
  params = {
    'id': num,
    'form': UserForm(instance=obj),
  }

  return render(request, 'member/edit.html', params)