Skip to content

Instantly share code, notes, and snippets.

@glinesbdev
Created November 10, 2015 20:04
Show Gist options
  • Select an option

  • Save glinesbdev/760cb079e4d0d9a526db to your computer and use it in GitHub Desktop.

Select an option

Save glinesbdev/760cb079e4d0d9a526db to your computer and use it in GitHub Desktop.
Django View
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from .forms import InvitationForm
from .models import Invitation, Game
@login_required
def new_invitation(request):
if request.method == 'POST':
invitation = Invitation(from_user=request.user)
form = InvitationForm(data=request.POST, instance=invitation)
if form.is_valid():
form.save()
return redirect('user_home')
else:
form = InvitationForm()
context = {
'form': form
}
return render(request, "tictactoe/new_invitation.html", context)
@login_required
def accept_invitation(request, pk):
invitation = get_object_or_404(Invitation, pk=pk)
if not request.user == invitation.to_user:
raise PermissionDenied
if request.method == 'POST':
if "accept" in request.POST:
game = Game.objects.new_game(invitation)
game.save()
invitation.delete()
return redirect(game)
else:
invitation.delete()
return redirect('user_home')
else:
return render(request, "tictactoe/accept_invitation.html", {'invitation': invitation})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment