Python Django管理员自定义按钮不工作

Python Django管理员自定义按钮不工作,python,django,django-admin,Python,Django,Django Admin,对于Django自定义用户模型,我有一个license\u key字段。在管理界面上,为了方便使用,我尝试创建一个按钮,为您当前正在查看的用户生成一个新的许可证密钥。下面是我重写change_form.html,就像Django文档中建议的那样 /main/templates/admin/main/MyUser/change\u form.html: {% extends "admin/change_form.html" %} {% load i18n admin_urls %} {% blo

对于Django自定义用户模型,我有一个license\u key字段。在管理界面上,为了方便使用,我尝试创建一个按钮,为您当前正在查看的用户生成一个新的许可证密钥。下面是我重写change_form.html,就像Django文档中建议的那样

/main/templates/admin/main/MyUser/change\u form.html:

{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}

{% block form_top %}

    <form class="form-horizontal" method="POST" action="/auth/gen_new_aero_license/">
        {% csrf_token %}

        <div class="control-group">
            <div class="controls controls-row">
                <button type="submit" class="btn btn-primary">
                    Generate new license
                </button>
            </div>
        </div>
    </form>
{% endblock %}
下面是我对这个新函数的URL.py定义,因为它可能会有帮助:

url(r'^auth/gen_new_aero_license/$', 'main.views.auth_gen_new_aero_license', name='auth_gen_new_aero_license'),
我甚至没有调用脚本在views.py中生成新的动态许可证密钥。我只是将其设置为某个随机值以进行测试

问题是:当我点击按钮时,它只会刷新我所在的当前用户,并且所有的值都被删除了,因此给了我错误。这就好像它试图删除所有字段,然后保存该用户,该用户现在是无效用户

我尝试过调试,但它似乎从未进入我的views.py文件中的函数。我还更新了我的url.py,因此my views.py中的函数应该是有效的

我想做的是可能的吗?还是有更好的办法?或者可能出了什么问题

如果您需要更多的澄清,请询问

谢谢


编辑:另外,现在用户页面上没有内置的管理按钮,即-保存、保存和添加另一个、保存和继续编辑…

您是否尝试过
u=MyUser.objects.get(username\uu iexact=request.user)
而不是尝试完成某项任务所需的表单。您可以将表单替换为:

<a href="{% url "auth_gen_new_aero_license" %}" class="btn btn-primary">Generate new licence</a>


刚刚试过。没用。我不认为找到正确的用户名一定是个问题。太棒了!非常感谢。这非常有效:)你知道除了“form_top”之外,如何定位链接吗?例如,在更新用户的某个部分上方?您可以看到哪些块可用,这些块也揭示了您以前的问题(您将表单放置在表单中:-))。因此,您知道是否有任何方法可以在特定字段集之后,而不是在所有字段集之后,替换它们,或者在它们之前执行此操作?
<a href="{% url "auth_gen_new_aero_license" %}" class="btn btn-primary">Generate new licence</a>