gpt4 book ai didi

python - 从 Django 中的 FilteredSelectMultiple 小部件获取所选值

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:57 24 4
gpt4 key购买 nike

在 Django admin 中,有谁知道在保存表单时如何从 FilteredSelectMultiple 小部件中获取所选值?

class ControllerForm(forms.ModelForm):
terminal = forms.ModelMultipleChoiceField(queryset=[])

def __init__(self, *args, **kwargs):
super(ControllerForm, self).__init__(*args, **kwargs)
self.fields['terminal'].widget = widgets.FilteredSelectMultiple('terminals', False)
self.fields['terminal'].help_text = "Select the terminals which are to be added to the group."
self.fields['terminal'].required = False
self.fields['terminal'].label = "Select terminal(s)"
self.fields['terminal'].choices = [(t.id, str(t)) for t in Terminal.objects.filter(associated=False)]
class Meta:
model = Controller
class ControllerAdmin(admin.ModelAdmin):
"""
Controller admin form customization.
"""
list_display = ('name', 'group',)

form = ControllerForm

admin.site.register(Controller, ControllerAdmin)

编辑:我想我可以访问 save_model 方法中的值。 (https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model)

最佳答案

我已经找到解决方案了。使用 ModelAdmin 中提供的 save_model 方法,可以访问 form.cleaned_data 字典中选定的对象。

def save_model(self, request, obj, form, change):

for terminal in form.cleaned_data['terminal']:
...

obj.save()

结账 https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_modelhttps://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs有关此方法的更多详细信息。

谢谢

关于python - 从 Django 中的 FilteredSelectMultiple 小部件获取所选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14709973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com