''' '''URLS.py
from django.urls import path
from . import views
app_name = 'blog'
urlpatterns = [
path('', views.index, name='index'),
path('<str:username>/timeline/', views.timeline_view, name='timeline'),
path('create-post/', views.post_view, name='create_post'),
path('create-column/', views.column_view, name='create_column'),
path('new-column/', views.newcolumn_view, name='new_column'),
]
models.py:
from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone
class BlogPost (models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
message = models.CharField(max_length=250)
created_at = models.DateTimeField(default=timezone.now)
created_attt = models.CharField(max_length=222, default='')
views.py:
import logging
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.http import HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.urls import reverse
from django.views.decorators.http import require_POST
from .forms import PostForm, CreateForm, NewColumnForm
from .models import BlogPost
def index(request):
return render(request, 'blog/base.html')
def timeline_view(request, username):
post_form = PostForm()
column_form = CreateForm()
newcolumn_form = NewColumnForm()
user = get_object_or_404(User, username=username)
posts = BlogPost.objects.filter(user=user).order_by('-created_at')
return render(request, 'blog/timeline.html', {'posts': posts, 'post_form': post_form, 'column_form': column_form, 'user': user, 'newcolumn_form': newcolumn_form})
@login_required
@require_POST
def post_view(request):
post_form = PostForm(request.POST)
logging.debug(post_form)
if post_form.is_valid():
post = post_form.save(commit=False)
post.user = request.user
post.save()
return HttpResponseRedirect(reverse('blog:timeline', kwargs={'username': request.user.username}))
@login_required
@require_POST
def column_view(request):
column_form = CreateForm(request.POST)
if column_form.is_valid():
createcolumn = column_form.save(commit=False)
createcolumn.user = request.user
createcolumn.save()
return HttpResponseRedirect(reverse('blog:timeline', kwargs={'username': request.user.username}))
@login_required
@require_POST
def newcolumn_view(request):
newcolumn_form = CreateForm(request.POST)
if newcolumn_form.is_valid():
newcolumn = newcolumn_form.save(commit=False)
newcolumn.user = request.user
newcolumn.save()
return HttpResponseRedirect(reverse('blog:timeline', kwargs={'username': request.user.username}))
'''