【发布时间】:2014-06-08 18:03:58
【问题描述】:
对于我的 Django 自定义用户模型,我有一个 license_key 字段。在管理界面上,为了便于使用,我正在尝试创建一个按钮,它会为您当前正在查看的用户生成一个新的 license_key。这是我覆盖 change_form.html,就像 Django 文档中建议的那样。
/main/templates/admin/main/MyUser/change_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 %}
此表单调用我在主视图文件中定义的函数...
main/views.py:
def auth_gen_new_aero_license(request):
u = MyUser.objects.get(username=request.user.username)
u.license_key = 'XXX'
u.save()
return redirect('/')
这是我对这个新函数的 urls.py 定义,因为它可能会有所帮助:
url(r'^auth/gen_new_aero_license/$', 'main.views.auth_gen_new_aero_license', name='auth_gen_new_aero_license'),
我什至没有调用脚本在 views.py 中生成新的动态 license_key。我只是将其设置为一些随机值以进行测试。
所以问题来了:当我单击按钮时,它只会刷新我所在的当前用户,并且所有值都已被删除,从而给了我错误。就好像它试图删除所有字段然后保存该用户,该用户现在是一个无效用户。
我尝试调试,似乎它甚至从未进入我的views.py 文件中的函数。我还更新了我的 urls.py,所以我的 views.py 中的函数应该是有效的。
我正在尝试做的事情是否可能?或者,还有更好的方法?或者可能出了什么问题。
如果您需要更多说明,请询问!
谢谢
编辑:此外,现在用户页面上没有内置管理按钮,即 - 保存、保存并添加另一个、保存并继续编辑...
【问题讨论】:
标签: python django django-admin