Skip to content

Instantly share code, notes, and snippets.

@jarekswierek
Created November 13, 2018 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jarekswierek/3f8c68c10bc5e14c7ffa05b324e2b291 to your computer and use it in GitHub Desktop.
Save jarekswierek/3f8c68c10bc5e14c7ffa05b324e2b291 to your computer and use it in GitHub Desktop.
blog fixes from jaro :P yolo!!
{% extends "blog/base.html" %}
{% block content %}
{{category.name}}
{% for post in posts %}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="{% url 'user-posts' username=post.author.username %}">{{ post.author }}</a>
<small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small></br>
<small class="text-muted">Kategoria: {{ post.post_category }}</small>
</div>
<h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>
<p class="article-content">{{ post.content }}</p>
</div>
</article>
{% endfor %}
{% endblock content %}
{% extends "blog/base.html" %}
{% block content %}
{% for post in posts %}
<article class="media content-section">
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}" />
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="{% url 'user-posts' post.author.username %}">{{ post.author }}</a>
<small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small></br>
<small class="text-muted">Kategoria: <a class="mr-2" href="{% url 'category-detail' slug=post.post_category.slug %}">{{ post.post_category }}</a></small>
</div>
<h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>
<p class="article-content">{{ post.content }}</p>
<a class="article-title" href="{% url 'post-detail' post.id %}">Komentarze: {{ post.comments.count }}</a>
</div>
</article>
{% endfor %}
{% if is_paginated %}
{% if page_obj.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
{% endif %}
{% for num in page_obj.paginator.page_range %}
{% if page_obj.number == num %}
<a class="btn btn-info mb-4" href="?page={{ num }}">{{ num }}</a>
{% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
{% endif %}
{% endif %}
{% endblock content %}
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.contrib.auth.models import User
from django.contrib import messages
from django.views.generic import (
ListView,
DetailView,
CreateView,
UpdateView,
DeleteView
)
from .models import Post, Comment, Category
from .forms import CommentForm
# Create your views here.
def home(request):
context = {
'posts': Post.objects.all(),
}
return render(request, 'blog/home.html', context)
class PostListView(ListView):
model = Post
template_name = 'blog/home.html' # <app>/model>_<viewtype>.html
context_object_name = 'posts'
ordering = ['-date_posted']
paginate_by = 3
class UserPostListView(ListView):
model = Post
template_name = 'blog/user_posts.html' # <app>/<model>_<viewtype>.html
context_object_name = 'posts'
paginate_by = 3
def get_queryset(self):
user = get_object_or_404(User, username=self.kwargs.get('username'))
return Post.objects.filter(author=user).order_by('-date_posted')
class PostDetailView(DetailView):
model = Post
template_name = 'blog/post_detail.html'
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
fields = ['title', 'post_category', 'content']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
template_name = 'blog/post_forms.html'
class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = Post
fields = ['title', 'post_category', 'content']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def test_func(self):
post = self.get_object()
if self.request.user == post.author:
return True
return False
template_name = 'blog/post_forms.html'
class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):
model = Post
success_url = '/'
def test_func(self):
post = self.get_object()
if self.request.user == post.author:
return True
return False
template_name = 'blog/post_confirm_delete.html'
class KategoriaCreateView(LoginRequiredMixin, CreateView):
model = Category
fields = ['name']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
template_name = 'blog/AddCategory.html'
def CategoryDetail(request, slug):
template_name = 'blog/category_detail.html' # <app>/<model>_<viewtype>.html
category = get_object_or_404(Category, slug=slug)
post = Post.objects.filter(post_category=category)
context = {
'category': category,
'post': post,
}
return render(request, template_name, context)
@login_required
def AddComment(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post
comment.author = request.user
comment.save()
messages.success(request, f'Dodałeś Komentarz!')
return redirect('post-detail', pk=post.pk)
else:
form = CommentForm()
return render(request, 'blog/Addcomment.html', {'form': form})
def about(request):
return render(request, 'blog/about.html', {'title': 'About'})
@jarekswierek
Copy link
Author

jarekswierek commented Nov 13, 2018

(ENV) jarecky@Jaroslaws-MBP NewBlog (master) $ git diff blog/templates/blog/category_detail.html blog/templates/blog/home.html blog/views.py
diff --git a/blog/templates/blog/category_detail.html b/blog/templates/blog/category_detail.html
index 015822e..f48d1b8 100644
--- a/blog/templates/blog/category_detail.html
+++ b/blog/templates/blog/category_detail.html
@@ -3,12 +3,12 @@

 {{category.name}}

-{{for item in post}}
+{% for post in posts %}
 <article class="media content-section">
   <img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
   <div class="media-body">
     <div class="article-metadata">
-      <a class="mr-2" href="{% url 'user-posts' post.author.username %}">{{ post.author }}</a>
+      <a class="mr-2" href="{% url 'user-posts' username=post.author.username %}">{{ post.author }}</a>
       <small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small></br>
       <small class="text-muted">Kategoria: {{  post.post_category }}</small>
     </div>
diff --git a/blog/templates/blog/home.html b/blog/templates/blog/home.html
index b5d19dc..4d4246c 100644
--- a/blog/templates/blog/home.html
+++ b/blog/templates/blog/home.html
@@ -8,7 +8,7 @@
             <div class="article-metadata">
               <a class="mr-2" href="{% url 'user-posts' post.author.username %}">{{ post.author }}</a>
               <small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small></br>
-              <small class="text-muted">Kategoria: <a class="mr-2" href="{% url 'category-detail' slug=obj.post_category.slug %}">{{  post.post_category }}</a></small>
+              <small class="text-muted">Kategoria: <a class="mr-2" href="{% url 'category-detail' slug=post.post_category.slug %}">{{  post.post_category }}</a></small>
             </div>
             <h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>
             <p class="article-content">{{ post.content }}</p>
diff --git a/blog/views.py b/blog/views.py
index e7e8928..f27bf34 100644
--- a/blog/views.py
+++ b/blog/views.py
@@ -118,13 +118,13 @@ def CategoryDetail(request, slug):
     template_name = 'blog/category_detail.html'  # <app>/<model>_<viewtype>.html

     category = get_object_or_404(Category, slug=slug)
-    post = Post.objects.filter(post_category=post_category)
+    post = Post.objects.filter(post_category=category)

     context = {
         'category': category,
         'post': post,
     }
-    return render(request, template, context)
+    return render(request, template_name, context)


 @login_required
(END)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment