From b19c7ab4485c523eaf41e50b71527bb8272906ab Mon Sep 17 00:00:00 2001 From: Alexander Schulz Date: Sat, 31 Aug 2024 01:29:03 +0200 Subject: [PATCH] pdf upload works --- .gitignore | 3 +++ post/admin.py | 5 +++-- post/forms.py | 5 +++++ post/migrations/0009_conusfilepdf.py | 21 +++++++++++++++++++++ post/models.py | 6 +++++- post/templates/post/pdf_page.html | 16 ++++++++++++++++ post/urls.py | 4 +++- post/views.py | 14 +++++++++++++- templates/home.html | 2 ++ 9 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 post/migrations/0009_conusfilepdf.py create mode 100644 post/templates/post/pdf_page.html diff --git a/.gitignore b/.gitignore index b9f1e6d..278bd79 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,9 @@ env.bak/ venv.bak/ testappenv/ +#Directories +media/ + # Spyder project settings .spyderproject .spyproject diff --git a/post/admin.py b/post/admin.py index 28e3125..fb88761 100644 --- a/post/admin.py +++ b/post/admin.py @@ -1,4 +1,5 @@ from django.contrib import admin -from .models import Post +from .models import Post, ConusFilePDF # Register your models here. -admin.site.register(Post) \ No newline at end of file +admin.site.register(Post) +admin.site.register(ConusFilePDF) \ No newline at end of file diff --git a/post/forms.py b/post/forms.py index fad483c..a719b9c 100644 --- a/post/forms.py +++ b/post/forms.py @@ -6,3 +6,8 @@ class CreatePost(forms.ModelForm): model = models.Post fields = ['title' , 'body' , 'slug' , 'banner'] + +class UploadFileForm(forms.ModelForm): + class Meta: + model=models.ConusFilePDF + fields = [ 'fileName', 'file'] \ No newline at end of file diff --git a/post/migrations/0009_conusfilepdf.py b/post/migrations/0009_conusfilepdf.py new file mode 100644 index 0000000..dae4446 --- /dev/null +++ b/post/migrations/0009_conusfilepdf.py @@ -0,0 +1,21 @@ +# Generated by Django 5.1 on 2024-08-30 23:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('post', '0008_post_author'), + ] + + operations = [ + migrations.CreateModel( + name='ConusFilePDF', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('fileName', models.CharField(max_length=32)), + ('file', models.FileField(upload_to='PDFuploads/')), + ], + ), + ] diff --git a/post/models.py b/post/models.py index 7a927cd..0058cf5 100644 --- a/post/models.py +++ b/post/models.py @@ -13,5 +13,9 @@ class Post(models.Model): def __str__(self): return self.title +def user_directory_path(instance, filename): + return "user_{0}/{1}".format(instance.user.id, filename) - +class ConusFilePDF(models.Model): + fileName = models.CharField(max_length=32) + file = models.FileField(upload_to="PDFuploads/") \ No newline at end of file diff --git a/post/templates/post/pdf_page.html b/post/templates/post/pdf_page.html new file mode 100644 index 0000000..0681f16 --- /dev/null +++ b/post/templates/post/pdf_page.html @@ -0,0 +1,16 @@ +{% extends 'layout.html' %} + +{% block title %} + New PDF +{% endblock %} + +{% block content %} +
+

New PDFt

+
+ {% csrf_token %} + {{ form }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/post/urls.py b/post/urls.py index 830e45c..50300e7 100644 --- a/post/urls.py +++ b/post/urls.py @@ -6,6 +6,8 @@ app_name = 'post' urlpatterns = [ path('', views.post_list, name="list"), path('new-post/', views.post_new, name="new-post"), - path('', views.post_page, name="page"), + path('pdf/', views.pdf_page, name="pdf_page"), + path('', views.post_page, name="page") + ] \ No newline at end of file diff --git a/post/views.py b/post/views.py index 7c30a87..8abf0ce 100644 --- a/post/views.py +++ b/post/views.py @@ -25,4 +25,16 @@ def post_new(request): return redirect('post:list') else: form = forms.CreatePost() - return render(request, 'post/post_new.html', {'form': form}) \ No newline at end of file + return render(request, 'post/post_new.html', {'form': form}) + + +def pdf_page(request): + if request.method == "POST": + form = forms.UploadFileForm(request.POST, request.FILES) + if form.is_valid(): + #Handleuploaded file + form.save() + return redirect('post:pdf_page') + else: + form = forms.UploadFileForm() + return render(request, 'post/pdf_page.html', {'form' : form}) \ No newline at end of file diff --git a/templates/home.html b/templates/home.html index bb50031..4caf547 100644 --- a/templates/home.html +++ b/templates/home.html @@ -7,4 +7,6 @@ {% block content %}

Home

Check out my About page.

+

Upload a new PDF click here

+

show pdfs click here

{% endblock %} \ No newline at end of file