You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
pokercc/news/views.py

73 lines
2.5 KiB

from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.template import loader
from django.urls import reverse
from .models import Post, Comment
from .forms import PostForm
from datetime import datetime
import logging
from django.conf import settings
import uuid
# Create your views here.
def index(request):
latest_post_list = Post.objects.filter(state=1).order_by('-date')[:25]
context = { 'latest_post_list' : latest_post_list }
return render(request, 'news/index.html', context)
def post(request, post_id):
post = get_object_or_404(Post, pk=post_id)
return render(request, 'news/post.html', {'post': post})
# def submission(request):
# return render(request, 'news/submission.html', {})
def createaccount(request):
return render(request, 'news/createaccount.html', {})
def submission(request):
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = Post.objects.create(author=request.user,date=datetime.today())
post.title = form.cleaned_data['title']
post.body = form.cleaned_data['body']
post.url = form.cleaned_data['url']
filename = str(uuid.uuid4())
handle_uploaded_file(filename, request.FILES['image'])
post.image_url = filename
post.state = 1
post.save()
return HttpResponseRedirect(reverse('news:submitted'))
# if a GET (or any other method) we'll create a blank form
else:
form = PostForm()
return render(request, 'news/submission.html', {'form': form})
# title = forms.CharField(label='Title', max_length=200)
# body = forms.CharField(label='Optional text', max_length=10000)
# url = forms.CharField(label='URL', max_length=200)
# # date = forms.DateTimeField('date published')
# # state = forms.IntegerField(label='State', default=1)
# image = forms.FileField()
def handle_uploaded_file(filename, f):
with open(settings.MEDIA_ROOT + filename, 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
def submitted(request):
return render(request, 'news/submitted.html', {})
def comment(request, post_id):
comment = Comment(author=request.user,date=datetime.today())
comment.post = get_object_or_404(Post, pk=post_id)
comment.body = request.POST['body']
comment.save()
return HttpResponseRedirect(reverse('news:post', args=(post_id,)))