Python Django编辑HTML行并更新数据库

Python Django编辑HTML行并更新数据库,python,html,mysql,django,database,Python,Html,Mysql,Django,Database,我有一个表,我希望添加一个编辑按钮,该按钮可以在视觉上和数据库中更新特定记录 我拥有的HTML {% for work_entry in work_entries %} {% if work_entry.date == date.date %} <form action="{% url 'work_entries:object_edit' work_entry.id %}" method="post">

我有一个表,我希望添加一个编辑按钮,该按钮可以在视觉上和数据库中更新特定记录

我拥有的HTML

{% for work_entry in work_entries %}
                {% if work_entry.date == date.date %}
                <form action="{% url 'work_entries:object_edit' work_entry.id %}" method="post">
                    {% csrf_token %}
                <tr>
                    <td>
                            <button onclick="return confirm('Are you sure you want this edit?')">Edit
                            </button>
                            </td>
                    <td> <form action="{% url 'work_entries:object_delete' work_entry.id %}" method="post">
                            {% csrf_token %}
                            <button onclick="return confirm('Are you sure you want to delete this record?')">Delete
                            </button>
                            </form>
                            </td>
                    <td>{{ work_entry.id }}</td>
                    <td><input type="text" value="{{ work_entry.description }}" name="description"></td>
                    <td><input type="number" value="{{ work_entry.num_hours }}" name="hours"></td>
                </tr>
                </form>
                {% endif %}
            {% endfor %}
和url.py

app_name = "work_entries"

urlpatterns = [
    path("", views.employee_view, name="employeePage"),
    url(r"^delete/(?P<object_id>[0-9]+)/$", views.object_delete, name="object_delete"),
    url(r"^edit/(?P<object_id>[0-9]+)/$", views.object_edit, name="object_edit"),
]
app\u name=“工作”条目
URL模式=[
路径(“,views.employee_view,name=“employeePage”),
url(r“^delete/(?P[0-9]+)/$”,views.object\u delete,name=“object\u delete”),
url(r“^edit/(?P[0-9]+)/$”,views.object\u edit,name=“object\u edit”),
]
我在中使用了一个输入标记,因为我认为这样可以更改数据并保存它。然而,这在/employeePage/edit/14处给了我多值dictKeyError/ “说明”错误。我对jquery不是很有经验,从研究中我发现jquery是可行的,但我似乎没有把它做好。如果有人能帮助我,甚至给我一些建议,我会很有用的


注意:已经有一个按钮可以删除记录,我尝试了类似的编辑方法,但没有效果。

我完全鼓励您使用它,它会让您的生活更轻松

我也完全鼓励你不要使用表单来删除内容,它应该是一个简单的链接,这样可以避免在表单中使用表单。我想你的问题在这里。在窗体中有一个按钮,中间的按钮不能让浏览器知道要提交的表单的哪个部分。

还有两个按钮,但没有一个是提交类型

如果您不想使用Django表单,那么可以使用


{work_entries%}
{%if work_entry.date==date.date%}
{%csrf_令牌%}
更新
{{work_entry.id}
{%endif%}
{%endfor%}

这不是最漂亮的方法,我试着保持你的成就

我完全鼓励你使用它,它会让你的生活更轻松

我也完全鼓励你不要使用表单来删除内容,它应该是一个简单的链接,这样可以避免在表单中使用表单。我想你的问题在这里。在窗体中有一个按钮,中间的按钮不能让浏览器知道要提交的表单的哪个部分。

还有两个按钮,但没有一个是提交类型

如果您不想使用Django表单,那么可以使用


{work_entries%}
{%if work_entry.date==date.date%}
{%csrf_令牌%}
更新
{{work_entry.id}
{%endif%}
{%endfor%}

这不是最漂亮的方式,我尽量保持你的身材

谢谢你这么有礼貌,先生。您的方法确实有效,但是对于删除按钮,我必须另外添加'formaction=“…”。谢谢你这么有礼貌,先生。您的方法确实有效,但是对于删除按钮,我必须另外添加'formaction=“…”。大人物
app_name = "work_entries"

urlpatterns = [
    path("", views.employee_view, name="employeePage"),
    url(r"^delete/(?P<object_id>[0-9]+)/$", views.object_delete, name="object_delete"),
    url(r"^edit/(?P<object_id>[0-9]+)/$", views.object_edit, name="object_edit"),
]