@awd10
джанго ученик

Как сделать кастомный виджеты для форм в джанго?

Интересует 3 вопроса:

1. Как подключить и использовать свой .html шаблон в виджете?
2. Как внутри виджета сделать кастомный шаблон (минимальный набор тегов)?
3. Как правильно хранить свой виджет в приложении:
-myapp:
--forms:
---widget.py
---templates:
----mywidget.html

такой вариант подходящий или нужно делать иначе?

Cпасибо.

добавлю простой снипет, может кому и пригодится:
widgets.py
from django import forms
from django.forms.utils import flatatt
from django.utils.html import format_html


class Tags(forms.TextInput):
    input_type = 'text'
#переопределяем рендер
    def render(self, name=None, value=None, attrs=None):
        attrs = dict(self.attrs, **attrs) if attrs else self.attrs
        final_attrs = dict(attrs, type=self.input_type, name=name)
        return format_html('<input {} >', flatatt(final_attrs)) # flatatt позволяет пребразовать словарь в нормальные пары
# подключаем статику
    class Media:
        css = {
            'all': ('style.css',)
        }
        js = 'script.js'

и в формах, мы просто подключаем виджет:
test = forms.CharField(widget=Tags)

а если совсем все плохо и лениво, то можно использовать https://django-floppyforms.readthedocs.io/en/latest/
  • Вопрос задан
  • 1266 просмотров
Решения вопроса 1
sim3x
@sim3x
В случае разработки виджетов мешают хтмл и питон
И mywidget.html не нужен

https://github.com/yourlabs/django-autocomplete-li...
https://github.com/yourlabs/django-autocomplete-li...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы