Skip to content

form.media is rendered as None #2

Closed
@hleroy

Description

@hleroy

Many thanks for django-csp-helpers :-)

Following your comment, I tested v0.6.0.
Unfortunately, {{ form.media }} is rendered as None
Maybe I have missed something in the instructions ?
See below my forms.py, widgets.py and the HTML template

Forms.py

class NoteForm(CSPFormMixin, ModelForm):
    class Meta:
        model = Note
        fields = ('datetime', 'text', 'image')
        field_classes = {
            'datetime': SplitDateTimeField  # Use a SplitDateTimeField
        }
        widgets = {
            'text': Textarea(attrs={'rows': 4}),
            'datetime': SplitDateTimePickerWidget,
            'image': ImageWidget(attrs={'accept': 'image/*'})
        }
        labels = {
            'image': _('Photos')
        }

widgets.py

class SplitDateTimePickerWidget(SplitDateTimeWidget):
    class Media:
        css = {'all': ('pickadate/themes/default.css',
                       'pickadate/themes/default.date.css', 'pickadate/themes/default.time.css')}
        js = ('pickadate/picker.js', 'pickadate/picker.date.js',
              'pickadate/picker.time.js', 'pickadate/translations/fr_FR.js')

    def __init__(self, attrs=None, date_format=None, time_format=None):
        widgets = (
            DatePickerInput(attrs=attrs, format=date_format),
            TimePickerInput(attrs=attrs, format=time_format),
        )
        super(SplitDateTimeWidget, self).__init__(widgets, attrs)

class ImageWidget(ClearableFileInput):
    class Media:
        css = {'all': ('css/image_preview.css', )}
        js = ('js/image_preview.js', 'js/bootstrap-uploadprogress.js',)

    template_name = "widgets/image_widget.html"

HTML template

{% extends "base.html" %}

{% load i18n %}
{% load static %}
{% load bootstrap4 %}

{% block title %}{{ block.super }} - {% trans "Update a note" %}{% endblock %}

HTML template:
{% block content %}
<form id="form" method="post" action="." enctype="multipart/form-data">
  <h2>{% trans "Update a note" %}</h2>
  {% csrf_token %}
  {% bootstrap_form form %}
  {% bootstrap_button content=_('Update') button_type='submit' button_class='btn-lg btn-primary' %}
</form>
<br />
<p><a href="{% url 'note_delete' note.uuid %}" class="btn-lg btn-danger" role="button"><span class="fa fa-trash" aria-hidden="true">&nbsp;</span>{% trans "Delete" %}</a></p>
{% endblock %}
{% block extra_script %}
<script type="text/javascript" nonce="{{request.csp_nonce}}">
$("#form").uploadprogress({redirect_url: "{% url 'note_list' %}"});
</script>
{{ form.media }}
{% endblock %}

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions