only add sections to existing pages to work around formset bug

readwriteweb
Jaap Joris Vens 2019-04-27 13:06:09 +02:00
rodzic 5ad04df8fb
commit 7446b928a4
4 zmienionych plików z 32 dodań i 32 usunięć

Wyświetl plik

@ -17,21 +17,23 @@
{% endfor %}
</div>
{{formset.management_form}}
{% for form in formset %}
{{form.media}}
{% for field in form.hidden_fields %}
{{field}}
{% block sections %}
{{formset.management_form}}
{% for form in formset %}
{{form.media}}
{% for field in form.hidden_fields %}
{{field}}
{% endfor %}
<section>
<div class="wrapper">
<h1>{% trans 'Section' %}: {{form.instance}}</h1>
{% for field in form.visible_fields %}
{% include 'cms/formfield.html' with field=field %}
{% endfor %}
</div>
</section>
{% endfor %}
<section>
<div class="wrapper">
<h1>{% trans 'Section' %}: {{form.instance}}</h1>
{% for field in form.visible_fields %}
{% include 'cms/formfield.html' with field=field %}
{% endfor %}
</div>
</section>
{% endfor %}
{% endblock %}
<div class="edit">
<button>{% trans 'save' %}</button>

Wyświetl plik

@ -0,0 +1,3 @@
{% extends 'cms/edit.html' %}
{% block sections %}{% endblock %}

Wyświetl plik

@ -1,5 +1,5 @@
from django.urls import path
from .views import PageView, UpdatePage, CreatePage, CreateSection
from .views import PageView, UpdatePage, CreatePage
app_name = 'cms'
@ -9,5 +9,4 @@ urlpatterns = [
path('cms/homepage/', UpdatePage.as_view(), {'slug': ''}, name='updatehomepage'),
path('cms/page/<slug:slug>/', UpdatePage.as_view(), name='updatepage'),
path('cms/newpage/', CreatePage.as_view(), name='createpage'),
#path('cms/page/<slug:slug>/createsection/', CreateSection.as_view(), name='createsection'),
]

Wyświetl plik

@ -1,10 +1,10 @@
from django.views.generic import DetailView, UpdateView, CreateView
from django.views.generic.detail import SingleObjectMixin
from django.shortcuts import redirect, get_object_or_404
from django.shortcuts import redirect
from django.contrib.auth.mixins import UserPassesTestMixin
from .models import *
from .forms import *
from .utils import *
from django.views.generic import DetailView, UpdateView, CreateView
from .models import Page
from .forms import PageForm, SectionFormSet
from .utils import get_config
class StaffRequiredMixin(UserPassesTestMixin):
def test_func(self):
@ -25,7 +25,12 @@ class PageView(MenuMixin, DetailView):
model = Page
template_name = 'cms/page.html'
class EditPageMixin:
class CreatePage(StaffRequiredMixin, MenuMixin, CreateView):
model = Page
form_class = PageForm
template_name = 'cms/new.html'
class UpdatePage(StaffRequiredMixin, MenuMixin, UpdateView):
model = Page
form_class = PageForm
template_name = 'cms/edit.html'
@ -55,12 +60,3 @@ class EditPageMixin:
'formset': formset,
})
return context
class UpdatePage(StaffRequiredMixin, MenuMixin, EditPageMixin, UpdateView):
pass
class CreatePage(StaffRequiredMixin, MenuMixin, EditPageMixin, CreateView):
def get_object(self):
pass
class CreateSection:
pass