diff --git a/blog/forms.py b/blog/forms.py
new file mode 100644
index 0000000..9af9b04
--- /dev/null
+++ b/blog/forms.py
@@ -0,0 +1,8 @@
+from .models import Post
+from django import forms
+
+
+class PostForm(forms.ModelForm):
+ class Meta:
+ model=Post
+ fields=['title','content']
diff --git a/blog/templates/blog/base.html b/blog/templates/blog/base.html
index e33cbe6..1926f42 100644
--- a/blog/templates/blog/base.html
+++ b/blog/templates/blog/base.html
@@ -34,6 +34,9 @@
Profile
+
+ Create Post
+
Logout
diff --git a/blog/templates/blog/create_post.html b/blog/templates/blog/create_post.html
new file mode 100644
index 0000000..21ba363
--- /dev/null
+++ b/blog/templates/blog/create_post.html
@@ -0,0 +1,10 @@
+{% extends "blog/base.html" %}
+
+{% block content %}
+ Create Post
+
+{% endblock content %}
\ No newline at end of file
diff --git a/blog/templates/blog/update_post.html b/blog/templates/blog/update_post.html
new file mode 100644
index 0000000..ebb5651
--- /dev/null
+++ b/blog/templates/blog/update_post.html
@@ -0,0 +1,10 @@
+{% extends "blog/base.html" %}
+
+{% block content %}
+ Update Post
+
+{% endblock content %}
\ No newline at end of file
diff --git a/blog/urls.py b/blog/urls.py
index a817f61..0325b7a 100644
--- a/blog/urls.py
+++ b/blog/urls.py
@@ -5,4 +5,6 @@
urlpatterns = [
path("", views.home, name="blog-home"),
path("about/", views.about, name="blog-about"),
+ path("create-post/", views.create_post, name="create_post"),
+ path("update-post//", views.update_post, name="update_post"),
]
diff --git a/blog/views.py b/blog/views.py
index 2675c50..eb2ec10 100644
--- a/blog/views.py
+++ b/blog/views.py
@@ -1,7 +1,8 @@
-from django.shortcuts import render
-
+from django.shortcuts import render,redirect,get_object_or_404
+from django.contrib.auth.decorators import login_required
from .models import Post
-
+from .forms import PostForm
+from django.contrib import messages
def home(request):
context = {"posts": Post.objects.all()}
@@ -10,3 +11,39 @@ def home(request):
def about(request):
return render(request, "blog/about.html", {"title": "About"})
+
+@login_required
+def create_post(request):
+ if request.method == 'POST':
+ form=PostForm(request.POST)
+ if form.is_valid():
+ user=form.save(commit=False)
+ user.author=request.user
+ user.save()
+ messages.success(request, 'The post has been created successfully.')
+ return redirect('home')
+ else:
+ messages.error(request, 'Please correct the following errors:')
+ form=PostForm()
+ return render(request,'blog/create_post.html',{'form':form})
+
+@login_required
+def update_post(request, pk):
+ post=get_object_or_404(Post, pk=pk)
+
+ if request.method == "POST":
+ form=PostForm(request.POST, instance=post)
+ if form.is_valid():
+ user=form.save()
+ user.author=request.user
+ user.save()
+ messages.info(request, "Post has been updated successfully")
+ # Redirect To Detail Page
+ return redirect('')
+
+ messages.error(request,"Please correct the following error !!")
+
+ else :
+ form=PostForm(instance=post)
+
+ return render(request, "blog/update_post.html", {'form':form})