def group(request, group_id=-1): group = None action = "Create" if group_id: try: group = Group.objects.get(id=group_id) if group.owner != request.user: raise ObjectDoesNotExist action = "Edit" except ObjectDoesNotExist: pass if not group: group = Group(owner=request.user) if request.method == "POST": form = forms.GroupForm(data=request.POST, instance=group) if form.is_valid(): group = form.save(commit=False) is_new = False if not group.code: # this is a new group is_new = True invite_code = generate_code(3) code_obj = InvitationCode() code_obj.code = invite_code code_obj.email = request.user.email code_obj.save() group.code = code_obj group.save() if request.user not in group.members.all(): group.members.add(request.user) group.save() if is_new: return HttpResponseRedirect(reverse('invite-friends', args=(group.id,))) else: return HttpResponseRedirect(reverse(actions)) else: form = forms.GroupForm(label_suffix="", instance=group) return render(request, 'create.html', {'form': form, 'action':action})