2016-10-27 1 views
0

У меня есть форма, которая позволяет загружать изображение, но я хочу знать, можно ли настроить разметку, которую создает Django.Настройка django ImageField разметки в шаблоне

В модели она создается как ImageField:

logo = models.ImageField(blank=True, null=True) 

В шаблоне я создаю «загрузить» поле формы с помощью

{{ form.logo }} 

Это разметка, которая получает генерируется:

Currently: <a href="/media/dog.jpg">dog.jpg</a> 
<input id="logo-clear_id" name="logo-clear" type="checkbox"> 
<label for="logo-clear_id">Clear</label> 
<br>Change: <input id="id_logo" name="logo" type="file"> 

Я хочу знать, могу ли я изменить эту разметку, сверлив ее дальше, чтобы я мог xample установите флажок, чтобы очистить изображение внутри его метки. Я также хотел бы использовать свою собственную разметку, чтобы отделить параметр, чтобы очистить поле формы от опции, чтобы загрузить новую. Однако я не могу найти документацию о том, как это сделать. Я попытался получить

{{ logo.logo-clear }} 

напрямую, но это вызывает ошибку.

ответ

0

Решение было создать собственную версию виджета используется в моем forms.py: https://docs.djangoproject.com/en/1.10/_modules/django/forms/widgets/#ClearableFileInput

from django.forms.widgets import ClearableFileInput 

class CustomImageFieldWidget(ClearableFileInput): 
     template_with_clear = '<label for="%(clear_checkbox_id)s">%(clear)s %(clear_checkbox_label)s</label>' 

class OrganisationProfileForm(OrganisationCreateForm): 

    class Meta(OrganisationCreateForm.Meta): 
     widgets = { 
      'logo': CustomImageFieldWidget, 
     } 

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

  • Нет связанных вопросов^_^