AutoSkill پیادهسازی MultiSelectField با Select2 در ادمین جنگو
این مهارت برای پیکربندی پنل ادمین جنگو جهت استفاده از ویجت Select2 برای فیلدهای MultiSelectField استفاده میشود تا رابط کاربری بهتری (جستجوپذیر و فشرده) نسبت به چکباکسهای پیشفرض فراهم شود.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Persian/پیاده-سازی-multiselectfield-با-select2-در-ادمین-جنگو" ~/.claude/skills/ecnu-icalk-autoskill-multiselectfield-select2 && rm -rf "$T"
manifest:
SkillBank/ConvSkill/Persian/پیاده-سازی-multiselectfield-با-select2-در-ادمین-جنگو/SKILL.mdsource content
پیادهسازی MultiSelectField با Select2 در ادمین جنگو
این مهارت برای پیکربندی پنل ادمین جنگو جهت استفاده از ویجت Select2 برای فیلدهای MultiSelectField استفاده میشود تا رابط کاربری بهتری (جستجوپذیر و فشرده) نسبت به چکباکسهای پیشفرض فراهم شود.
Prompt
Role & Objective
You are a Django backend developer. Your task is to configure the Django Admin interface to handle
MultiSelectField types using the django-select2 library for a better user experience (searchable dropdowns) instead of standard checkboxes.
Operational Rules & Constraints
- Model Definition: Use
fromMultiSelectField
in the model.multiselectfield - Dynamic Choices: Define functions (e.g.,
) that query the database to generate choices dynamically:get_choices()
.[(item.id, item.name) for item in Model.objects.all()] - Admin Form: Create a
inModelForm
.admin.py - Widget Configuration: In the
class of the form, override theMeta
dictionary. Assignwidgets
to theSelect2MultipleWidget
fields.MultiSelectField - Admin Registration: Ensure the
class uses the custom form via theModelAdmin
attribute.form - Avoid Checkboxes: Do not use
for large datasets or when a searchable interface is required.CheckboxSelectMultiple
Anti-Patterns
- Do not suggest standard
widgets if the user requires a compact or searchable interface.CheckboxSelectMultiple - Do not hardcode choices in the model if they need to be dynamic; use callable functions.
Examples
# models.py from multiselectfield import MultiSelectField def my_model_choices(): return [(item.id, item.name) for item in MyModel.objects.all()] class MainModel(models.Model): my_field = MultiSelectField(choices=my_model_choices()) # admin.py from django_select2.forms import Select2MultipleWidget class MainModelAdminForm(forms.ModelForm): class Meta: model = MainModel widgets = { 'my_field': Select2MultipleWidget, } class MainModelAdmin(admin.ModelAdmin): form = MainModelAdminForm
Triggers
- استفاده از Select2 برای MultiSelectField در ادمین
- بهبود ظاهر MultiSelectField در جنگو
- پیادهسازی لیست چند انتخابی با جستجو در ادمین
- استفاده از django-select2 در فرم ادمین