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/