Add post create view
This commit is contained in:
parent
9a5bedabca
commit
4180203bd1
3 changed files with 27 additions and 1 deletions
|
|
@ -5,4 +5,5 @@ from . import views
|
||||||
app_name = "posts"
|
app_name = "posts"
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("post/<int:pk>", views.PostDetailView.as_view(), name="post_detail"),
|
path("post/<int:pk>", views.PostDetailView.as_view(), name="post_detail"),
|
||||||
|
path("post/new", views.PostCreateView.as_view(), name="post_create"),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
from django.views.generic import DetailView
|
from django.views.generic import DetailView, CreateView
|
||||||
from django.views.generic.edit import ModelFormMixin
|
from django.views.generic.edit import ModelFormMixin
|
||||||
from django.forms import modelform_factory
|
from django.forms import modelform_factory
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
|
|
||||||
|
|
@ -32,3 +33,17 @@ class PostDetailView(LoginRequiredMixin, DetailView, ModelFormMixin):
|
||||||
return self.form_valid(form)
|
return self.form_valid(form)
|
||||||
else:
|
else:
|
||||||
return self.form_invalid(form)
|
return self.form_invalid(form)
|
||||||
|
|
||||||
|
|
||||||
|
class PostCreateView(LoginRequiredMixin, CreateView):
|
||||||
|
model = Post
|
||||||
|
fields = ("title", "body", "img")
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return reverse("posts:post_detail", kwargs={"pk": self.object.pk})
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
self.object = form.save(commit=False)
|
||||||
|
self.object.user = self.request.user
|
||||||
|
self.object.save()
|
||||||
|
return HttpResponseRedirect(self.get_success_url())
|
||||||
|
|
|
||||||
10
flangr/templates/posts/post_form.html
Normal file
10
flangr/templates/posts/post_form.html
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Upload a new picture</h1>
|
||||||
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form }}
|
||||||
|
<input type="submit", value="Post">
|
||||||
|
</form>
|
||||||
|
{% endblock content %}
|
||||||
Loading…
Add table
Reference in a new issue