Django中的UpdateView问题

时间:2015-07-26 22:48:23

标签: django django-models django-templates django-urls

我在这个网站上寻求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错误。

1 个答案:

答案 0 :(得分:0)

你的正则表达式看起来很糟糕。它只匹配一个或多个数字后跟文字“d”。我怀疑你的团队名称与那种模式不符。