Изменить значение формы с помощью BoundField в Django?

#django #forms #filter #django-templates

#django #формы #Фильтр #django-шаблоны

Вопрос:

Я пытаюсь использовать пользовательский фильтр шаблонов, чтобы изменить значение формы и вернуть его обратно. В частности, я пытаюсь сделать то, что уже делает cut фильтр шаблонов, но вместо этого использую lstrip и rstrip .

 from django.template import Library
register = Library()

def lstrip(value, arg):
    return value.value() #I can get the form value, but how do I change it?

register.filter('lstrip',lstrip)
  

В моем шаблоне:

 #import custom template tags

{{ form.url|lstrip:"/" }}
  

Как мне изменить значение поля и вернуть поле с новым значением на место (точно так же, как это уже делает cut фильтр)?

Ответ №1:

во-первых, я бы изменил имя вашего тега шаблона, потому что lstrip — это встроенный метод python. В вашем переименованном теге шаблона вы действительно можете использовать lstrip, если это то, что вы хотите сделать:

 def my_custom_strip(value, arg):
    return value.lstrip(arg)
  

и в вашем шаблоне

 {{ form.url|my_custom_strip:"/" }}
  

Надеюсь, это поможет,

Хофф