Django 中 UpdateView 的问题
Problems with UpdateView in Django
我在该站点上查找有关 UpdateView 的帮助,虽然我找到了有关设置它的内容,但我自己无法实现它。我不确定问题出在哪里,在这一点上,与其继续撕扯我的头发,我想这里的人可以很容易地发现我的错误。
我想要一个团队列表,在它们的右侧有编辑按钮。每当单击编辑按钮时,它应该将用户带到可以更新特定团队模型字段的页面。
每当我单击下面代码中的编辑按钮时,都会收到 NoReverseMatch 错误。我做错了什么?
view.py代码:
class TeamUpdate(UpdateView):
model = Team
fields = ['team_name', 'sport', 'sport_season']
url.py代码:
url(r'(?P<name>[0-9]+d)/$', TeamUpdate.as_view(), name='team_update'),
相关模板代码:
<form method="POST" action="">
{% csrf_token %}
<table class="table">
<thead>
<tr>
<th>Team Name</th>
<th>Sport</th>
<th>Season</th>
<th>Preferences</th>
</tr>
</thead>
<tbody>
{% for team in teams %}
<tr>
<td>{{team}}</td>
<td>{{team.sport_verbose}}</td>
<td>{{team.season_verbose}}</td>
<td> <input type="submit" class="btn btn-sm btn-primary" href = '{% url "team_update" team.team_name %}' value="Edit" ></td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
编辑:
所以我将正则表达式更改为 url(r'(?P<name>)$', TeamUpdate.as_view(), name='team_update'),
从上面的内容来看,认为这会将团队名称替换为 url,但出现了相同的 NoReverseMatch 错误。
您的正则表达式看起来有问题。它只匹配一个或多个数字后跟文字 'd'。我怀疑您的团队名称与该模式不符。
我在该站点上查找有关 UpdateView 的帮助,虽然我找到了有关设置它的内容,但我自己无法实现它。我不确定问题出在哪里,在这一点上,与其继续撕扯我的头发,我想这里的人可以很容易地发现我的错误。
我想要一个团队列表,在它们的右侧有编辑按钮。每当单击编辑按钮时,它应该将用户带到可以更新特定团队模型字段的页面。 每当我单击下面代码中的编辑按钮时,都会收到 NoReverseMatch 错误。我做错了什么?
view.py代码:
class TeamUpdate(UpdateView):
model = Team
fields = ['team_name', 'sport', 'sport_season']
url.py代码:
url(r'(?P<name>[0-9]+d)/$', TeamUpdate.as_view(), name='team_update'),
相关模板代码:
<form method="POST" action="">
{% csrf_token %}
<table class="table">
<thead>
<tr>
<th>Team Name</th>
<th>Sport</th>
<th>Season</th>
<th>Preferences</th>
</tr>
</thead>
<tbody>
{% for team in teams %}
<tr>
<td>{{team}}</td>
<td>{{team.sport_verbose}}</td>
<td>{{team.season_verbose}}</td>
<td> <input type="submit" class="btn btn-sm btn-primary" href = '{% url "team_update" team.team_name %}' value="Edit" ></td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
编辑:
所以我将正则表达式更改为 url(r'(?P<name>)$', TeamUpdate.as_view(), name='team_update'),
从上面的内容来看,认为这会将团队名称替换为 url,但出现了相同的 NoReverseMatch 错误。
您的正则表达式看起来有问题。它只匹配一个或多个数字后跟文字 'd'。我怀疑您的团队名称与该模式不符。