use*_*832 5 django django-models django-admin-filters
在我的代码中,我正在编写一个用于分组的操作,我想询问用户他们希望每个组有多少人,然后用一个警告框进行响应,根据用户输入,您有 4 个组. 我如何在 django admin 中执行此操作,我如何创建某种弹出窗口,询问他们想要加入一个组的人数?(我试图通过一个动作来实现这一点)
管理.py:
Def howmany (modeladmin, request, queryset):
people = queryset.count()
amount_per = [the number that the user inputs]
Amount_of_groups = people/amount_per
Run Code Online (Sandbox Code Playgroud)
ARK*_*han 13
我在这里找到了一种更简化、更好的方法:
您只需要创建一个像这样的操作表单。
from django.contrib.admin.helpers import ActionForm
from django import forms
class XForm(ActionForm):
x_field = forms.ModelChoiceField(queryset=Status.objects.all(), required=False)
Run Code Online (Sandbox Code Playgroud)
现在,在 admin.py 中定义该 XForm
class ConsignmentAdmin(admin.ModelAdmin):
action_form = XForm
actions = ['change_status']
def change_status(modeladmin, request, queryset):
print(request.POST['x_field'])
for obj in queryset:
print(obj)
change_status.short_description = "Change status according to the field"
Run Code Online (Sandbox Code Playgroud)
admin.py 类似:
Class MyAdmin(admin.ModelAdmin):
def howmany (modeladmin, request, queryset):
people = queryset.count()
amount_per = [the number that the user inputs]
Amount_of_groups = people/amount_per
if 'apply' in request.POST:
form = AmountPerForm(request.POST)
if form.is_valid():
amount_per = form.cleaned_data['amount_per']
self.message_user(request, u'You selected - %s' % amount_per)
return HttpResponseRedirect(request.get_full_path())
else:
form = AmountPerForm()
return render(request, 'admin/amount_per_form.html', {
'items': queryset.order_by('pk'),
'form': form,
'title': u'Your title'
})
Run Code Online (Sandbox Code Playgroud)
文件“admin/amount_per_form.html”包含如下内容:
{% extends 'admin/base_site.html' %}
{% block content %}
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="action" value="assign_new_manager" />
{{ form }}
<p>Apply for:</p>
<ul>{{ items|unordered_list }}</ul>
<input type="submit" name="apply" value="Apply" />
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2546 次 |
| 最近记录: |