Найти - Пользователи
Полная версия: Добавление собственных фильтров к форме
Начало » Django » Добавление собственных фильтров к форме
1
megoloman
Здравствуйте! Помогите пожалуйста добавить несколько фильтров к форме:
myfilters.py
:

from django import template
    
    register = template.Library()
    
    
    @register.filter(name='addclass')
    def addclass(value, arg):
        return value.as_widget(attrs={'class': arg})
    
    
    @register.filter
    def placeholder(field, args=None):
        if args == None:
            return field
        field.field.widget.attrs.update({ "placeholder": args })
        return field

В шаблоне делаю так:

{{ form.username|addclass:'form-control'|placeholder:'Enter your name'}}

Возникает такая ошибка:

Traceback (most recent call last):
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
        response = self.process_exception_by_middleware(e, request)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/home/megoloman/Django_1_9/bin/Deploy/test_site/apps/contact_info/views.py", line 121, in register
        return render_to_response("contact_info/register.html", args)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/shortcuts.py", line 39, in render_to_response
        content = loader.render_to_string(template_name, context, using=using)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/loader.py", line 97, in render_to_string
        return template.render(context, request)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/backends/django.py", line 95, in render
        return self.template.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 206, in render
        return self._render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 197, in _render
        return self.nodelist.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 988, in render
        bit = node.render_annotated(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 955, in render_annotated
        return self.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 173, in render
        return compiled_parent._render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 197, in _render
        return self.nodelist.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 988, in render
        bit = node.render_annotated(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 955, in render_annotated
        return self.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 69, in render
        result = block.nodelist.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 988, in render
        bit = node.render_annotated(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 955, in render_annotated
        return self.render(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 1039, in render
        output = self.filter_expression.resolve(context)
      File "/home/megoloman/Django_1_9/local/lib/python2.7/site-packages/django/template/base.py", line 732, in resolve
        new_obj = func(obj, *arg_vals)
      File "/home/megoloman/Django_1_9/bin/Deploy/test_site/apps/contact_info/templatetags/myfilters.py", line 15, in placeholder
        field.field.widget.attrs.update({ "placeholder": args })
    AttributeError: 'SafeText' object has no attribute 'field'
ayb
Используйте django-widget-tweaks
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB