def detail(request, entry_id): if request.method == "POST": form = CommentForm(request.POST, error_class=DivErrorList) if form.is_valid(): author = request.user text = request.POST['text'] entry = entry = Entry.objects.get(pk=entry_id) pub_date = timezone.now() comment = Comment(author=author, entry=entry, text=text, pub_date=pub_date) comment.save() dates = Entry.get_dates() form = CommentForm() try: entry = Entry.objects.get(pk=entry_id) except Entry.DoesNotExist: raise Http404 comments = Comment.objects.filter(entry=entry) context = {'entry': entry, 'dates': dates, 'comments': comments, 'form': form} return render(request, 'blog/detail.html', context)
def index(request): entries_list = Entry.objects.all().order_by('-pub_date') paginator = Paginator(entries_list, 5) # Show 5 entries per page entries = request.GET.get('page') try: entries = paginator.page(entries) except PageNotAnInteger: entries = paginator.page(1) except EmptyPage: entries = paginator.page(paginator.num_pages) dates = Entry.get_dates() context = { 'dates': dates, 'entries': entries} return render(request, 'blog/index.html', context)
def login(request): if request.user.is_authenticated(): return redirect('index') if request.method == "POST": form = LoginForm(request.POST, error_class=DivErrorList) if form.is_valid(): user = form.login(request) if user: auth_login(request, user) return redirect('index') else: form = LoginForm() dates = Entry.get_dates() context = {'dates': dates, 'form': form} return render(request, 'blog/login_form.html', context)
def edit_user_profile(request): user = request.user if not user.is_authenticated(): return redirect('login') try: about = UserProfile.objects.get(user=user).about except UserProfile.DoesNotExist: about = UserProfile.objects.create(user=user) dates = Entry.get_dates() update_email_form = UpdateEmailForm() update_about_form = UpdateAboutForm(initial={'about': about}) return render(request, 'blog/edit_profile.html', { 'update_email_form': update_email_form, 'user': user, 'dates': dates, 'update_about_form': update_about_form})
def user_profile(request, username): dates = Entry.get_dates() logged_in_user = request.user try: instance = User.objects.get(username=username) except ObjectDoesNotExist: raise Http404 try: user_profile = UserProfile.objects.get(user=instance) except ObjectDoesNotExist: user_profile = None context = {'view_user': instance, 'user_profile': user_profile, 'logged_in_user': logged_in_user, 'dates': dates} return render(request, 'blog/user_profile.html', context)
def signup(request): dates = Entry.get_dates() if request.method == "POST": form = SignupForm(request.POST, error_class=DivErrorList) if form.is_valid(): username = request.POST['username'] email = request.POST['email'] password = request.POST['password'] User.objects.create_user(username=username, email=email, password=password) new_user = authenticate(username=request.POST['username'], password=request.POST['password']) auth_login(request, new_user) return redirect('index') else: form = SignupForm() return render(request, 'blog/signup.html', { 'form': form, 'dates': dates})
def new_post(request): if not request.user.is_authenticated(): return redirect('login') if request.method == "POST": form = PostForm(request.POST, error_class=DivErrorList) if form.is_valid(): title = request.POST['title'] post = request.POST['post'] p = Entry(author=request.user, title=title, post=post, pub_date=timezone.now()) p.save() entry_id = p.pk return redirect('detail', entry_id=entry_id) else: form = PostForm dates = Entry.get_dates() context = {'dates': dates, 'form': form} return render(request, 'blog/new_post.html', context)