IsADirectoryError [Errno 21] при попытке отобразить пользовательское поле формы выбора
Я работаю с Python фреймворком Django v2.2. Я пытаюсь добавить пользовательские атрибуты к элементам <option>, чтобы они строились как <option ext='xx'>. Формы генерируются с помощью шаблонизатора Django admin, и я пытаюсь расширить их, а не создавать совершенно новые.
Мой код:
class CustomFormatSelect(forms.Select):
def __init__(self, attrs=None, choices=(), disabled_choices=()):
super(forms.Select, self).__init__(attrs, choices=choices)
def create_option(self, name, value, label, selected, index, subindex=None, attrs=None):
if index:
dataformat = DataFormat.objects.get(id=index)
extension = dataformat.ext
option = super(forms.Select, self).create_option(name, value, label, selected, index, subindex, attrs)
option['attrs']['ext'] = extension
return option
format = forms.ModelChoiceField(queryset=DataFormat.objects.all(), required=True, widget=CustomFormatSelect(attrs={'class':'file_formats'}))
Я использую режим отладки Django и после выполнения этого фрагмента получаю ошибку:
[Errno 21] Является директорией: '.../miniconda3/envs/migrator_admin/lib/python3.7/site-packages/django/contrib/admin/templates'
.
Дальнейшие сообщения:
В шаблоне .../templates/django/forms/widgets/select.html, ошибка в строке 3
.
И он указывает на строку в шаблоне:
3 {% include option.template_name with widget=option %}{% endfor %}{% if group_name %}
Я довольно новичок в Django, поэтому мой вопрос в том, должен ли я сделать это таким образом (если это решаемо), или я должен создать совершенно новый шаблон, который отделен от Django admin?