This appears to be covered here: http://docs.wagtail.io/en/v2.0.1/advanced_topics/settings.html - cross check all settings
Refer to Django settings - https://docs.djangoproject.com/en/2.0/ref/settings/
| from wagtail.wagtailforms.models import AbstractFormField, FORM_FIELD_CHOICES | |
| class FormField(AbstractFormField): | |
| FORM_FIELD_CHOICES = list(FORM_FIELD_CHOICES) + [('image', 'Upload Image')] | |
| field_type = models.CharField( | |
| verbose_name=_('field type'), | |
| max_length=16, | |
| choices=FORM_FIELD_CHOICES) | |
| page = ParentalKey('FormPage', related_name='form_fields') |
| from wagtail.wagtailforms.forms import FormBuilder | |
| from wagtail.wagtailimages.fields import WagtailImageField | |
| class ExtendedFormBuilder(FormBuilder): | |
| def create_image_upload_field(self, field, options): | |
| return WagtailImageField(**options) | |
| FIELD_TYPES = FormBuilder.FIELD_TYPES | |
| FIELD_TYPES.update({ | |
| 'image': create_image_upload_field, | |
| }) |
| # definition of ExtendedFormBuilder or import from another file above the Formpage class | |
| class FormPage(AbstractEmailForm): | |
| form_builder = ExtendedFormBuilder | |
| # the rest of the form page definition ... |
| class FormPage(AbstractEmailForm): | |
| form_builder = ExtendedFormBuilder # see the step above | |
| def serve(self, request, *args, **kwargs): | |
| if request.method == 'POST': | |
| # form = self.get_form(request.POST, page=self, user=request.user) # Original line | |
| form = self.get_form(request.POST, request.FILES, page=self, user=request.user) | |
| if form.is_valid(): | |
| self.process_form_submission(form) |
| {% extends "base.html" %} | |
| {% load wagtailcore_tags %} | |
| {% block content %} | |
| {{ self.intro }} | |
| <form action="{% pageurl self %}" method="POST" enctype="multipart/form-data"> | |
| {% csrf_token %} | |
| {{ form.as_p }} | |
| <input type="submit"> | |
| </form> |
| from wagtail.wagtailimages import get_image_model | |
| class FormPage(AbstractEmailForm): | |
| form_builder = ExtendedFormBuilder # as per step 3 | |
| def serve(self, request, *args, **kwargs): | |
| # ... as per step 4 | |
| def process_form_submission(self, form): | |
| cleaned_data = form.cleaned_data |
| from wagtail.wagtailforms.models import AbstractFormField, FORM_FIELD_CHOICES | |
| from wagtail.wagtailforms.forms import FormBuilder | |
| from wagtail.wagtailimages.fields import WagtailImageField | |
| def filename_to_title(filename): | |
| from os.path import splitext | |
| if filename: | |
| result = splitext(filename)[0] | |
| result = result.replace('-', ' ').replace('_', ' ') |
| # Your init script | |
| # | |
| # Atom will evaluate this file each time a new window is opened. It is run | |
| # after packages are loaded/activated and after the previous editor state | |
| # has been restored. | |
| # | |
| # An example hack to log to the console when each text editor is saved. | |
| # | |
| # atom.workspace.observeTextEditors (editor) -> | |
| # editor.onDidSave -> |
| """Node model and Node admin interaction.""" | |
| from django import forms | |
| from django.conf.urls import url | |
| from django.contrib.admin.utils import quote, unquote | |
| from django.core.exceptions import PermissionDenied | |
| from django.core.validators import MinLengthValidator, RegexValidator | |
| from django.db import models | |
| from django.shortcuts import get_object_or_404 | |
| from django.template.loader import render_to_string |
This appears to be covered here: http://docs.wagtail.io/en/v2.0.1/advanced_topics/settings.html - cross check all settings
Refer to Django settings - https://docs.djangoproject.com/en/2.0/ref/settings/