【问题标题】:Problems with UpdateView in DjangoDjango 中的 UpdateView 问题
【发布时间】:2015-10-17 00:38:30
【问题描述】:

我在此站点上查看了有关 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&lt;name&gt;)$', TeamUpdate.as_view(), name='team_update'), 从上面的内容来看,认为这会将团队的名称替换为 url,但同样的 NoReverseMatch 错误即将出现。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 您有什么建议可以解决?我基于其他几个 stackoverflow 响应。你有关于正则表达式最佳实践的好的资源吗?
    • 取决于您的姓名字段的格式。 r'(?P&lt;name&gt;\w+)/$' 如果只是字母数字字符,则可以使用。
    猜你喜欢
    • 2018-12-30
    • 2018-05-10
    • 1970-01-01
    • 2021-11-17
    • 2017-06-23
    • 2020-02-27
    • 1970-01-01
    • 2023-03-17
    • 2017-01-02
    相关资源
    最近更新 更多