【发布时间】:2018-10-16 23:35:09
【问题描述】:
我正在尝试创建一个将自定义时间增量添加到某个日期的管理操作。时间增量将从中间页面的输入中读取。确认后,我会将该增量应用于之前选择的每个实例。使用此代码(我为这个问题简化了)我无法获得输入的时间增量的值。我不知道用户是否按下了“应用”按钮。
models.py
class Match(models.Model):
date_of_match=models.DateTimeField()
admin.py
class MatchAdmin(admin.ModelAdmin):
actions=('move_date',)
def move_date(self,request,queryset):
if 'apply' in request.POST:
#to do, add timedelta to date_of_match
print("I'M IN!")
return render(request.'admin/move_date.html',{'matches':queryset})
move_date.short_description="Move date"
move_date.html
{% extends "admin/base_site.html" %}
{% block content %}
<form action="" method="post">{% csrf_token %}
<p>How much delta?<p>
<input type="number" step="1" value="days"/>
<input type="hidden" name="action" value="move_date" />
<input type="submit" name="apply" value="Apply"/>
</form>
{% endblock %}
【问题讨论】:
-
我正在尝试做这样的事情:docs.djangoproject.com/en/2.1/ref/contrib/admin/actions/…,但是在下拉菜单中选择我的操作后,我希望用户输入一个数字,然后使用该数字,完成动作。