Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,5 @@ nosetests.xml
env/
.venv/
.idea/
testing
attachments
38 changes: 38 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
setup:
make clean
mkdir -p testing
make prep-env envname=py3.9-dj2.2
make prep-env envname=py3.9-dj3.1
make prep-env envname=py3.9-dj3.2

start-22:
make runserver envname=py3.9-dj2.2

start-31:
make runserver envname=py3.9-dj3.1

start-32:
make runserver envname=py3.9-dj3.2


prep-env:
mkdir testing/$(envname)
.tox/$(envname)/bin/django-admin startproject testproject testing/$(envname)
.tox/$(envname)/bin/pip install -e .

ln -s ../../examples/contact_form testing/$(envname)/
ln -s ../../examples/simple testing/$(envname)/

gsed -i "40 i 'simple', 'contact_form'," testing/$(envname)/testproject/settings.py
.tox/$(envname)/bin/python testing/$(envname)/manage.py migrate
cp examples/testproject/urls.py testing/$(envname)/testproject/

# not supported in django 2.x
# DJANGO_SUPERUSER_USERNAME=admin DJANGO_SUPERUSER_PASSWORD=admin DJANGO_SUPERUSER_EMAIL=admin@example.com .tox/$(envname)/bin/python testing/$(envname)/manage.py createsuperuser --noinput
echo "from django.contrib import auth; auth.get_user_model().objects.create_superuser('admin', 'admin@example.com', 'admin')" | .tox/$(envname)/bin/python testing/$(envname)/manage.py shell

runserver:
.tox/$(envname)/bin/python testing/$(envname)/manage.py runserver localhost:8000

clean:
rm -rf testing
12 changes: 12 additions & 0 deletions examples/contact_form/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from django.contrib import admin

from . import models


class AttachmentInline(admin.StackedInline):
model = models.Attachment
extra = 0

@admin.register(models.Message)
class MessageAdmin(admin.ModelAdmin):
inlines = [AttachmentInline]
8 changes: 8 additions & 0 deletions examples/simple/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.contrib import admin

from . import models


@admin.register(models.Attachment)
class AttachmentAdmin(admin.ModelAdmin):
pass
5 changes: 4 additions & 1 deletion examples/simple/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from django.views.generic.edit import FormView
from django.urls import reverse

from .forms import UploadForm
from .models import Attachment
Expand All @@ -7,9 +8,11 @@
class UploadView(FormView):
template_name = 'form.html'
form_class = UploadForm
success_url = '/done/'

def form_valid(self, form):
for each in form.cleaned_data['attachments']:
Attachment.objects.create(file=each)
return super(UploadView, self).form_valid(form)

def get_success_url(self):
return reverse('admin:simple_attachment_changelist')
8 changes: 8 additions & 0 deletions examples/testproject/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('contact/', include('contact_form.urls')),
path('simple/', include('simple.urls')),
]