2013-12-18 2 views
2

Мне нужно добавить кнопку «Отменить» в модель ModelForm, я использую хрустящие формы, но когда я добавляю href='personnel-index', чтобы перенаправить обратно в список, это не так. Я проверил их документацию, но не повезло и не повезло с Google.Как сделать href для кнопки, используя urls.py?

+0

Этот ответ: http://stackoverflow.com/a/14423114/1297812 – laffuste

ответ

4

Иногда кнопка «Назад» браузера делает так же, как и кнопку «Отмена» в веб-форме, но если вы абсолютно уверены, что она вам нужна, вы всегда можете использовать объект HTML в хрустящих формах. Что-то, как это будет работать:

HTML("""<a class="classes-for-styling" href="/personnel/list/">Cancel</a>""") 

И, даже лучше, вы можете включать контекстные знающие тег, чтобы избежать жесткого кодирования URLs в вашу форму:

HTML("""<a class="classes-for-styling" href="{% url 'personnel-index' %}">Cancel</a>""") 

Тогда это просто до вас, чтобы укладывать ссылку, чтобы она выглядела как кнопка.

5

Не обязательно идеально, но это должно обрабатывать большинство ситуаций.

self.helper.add_input(Button('cancel', 'Cancel', css_class='btn-default', onclick="window.history.back()")) 
1

Извините, я не могу комментировать существующее решение, потому что моя репутация недостаточно хороша. Именно поэтому я добавляю пример кода для HTML (хрустящая форма объекта) решения, которое было предложено выше:

class MoodForm(forms.ModelForm): 
    class Meta: 
     model = Mood 

    def __init__(self, *args, **kw): 
     super(MoodForm, self).__init__(*args, **kw) 
     self.helper = FormHelper() 
     layout = Layout(
      ButtonHolder(
       Submit('Save', 'Save', css_class='button white'), 
       HTML('<a class="btn btn-warning" href={% url "mood:list" %}>Cancel</a>'), 
      ), 
     ) 
     self.helper.add_layout(layout)   

Самым важным материалом здесь является:

ButtonHolder(
    Submit('Save', 'Save', css_class='button white'), 
    HTML('<a class="btn btn-warning" href={% url "mood:list" %}>Cancel</a>'), 
) 

Он визуализирует две кнопки «Сохранить» и 'Отмена'.

Смежные вопросы