def get_object(self, queryset=None): """ Hook to ensure object is owned by request.user. """ profile = Profile.objects.filter(user=self.request.user).first() log_profile_activity(profile, constant.DECK_DELETE) obj = super().get_object() if not obj.profile == profile: raise Http404 return obj
def post(self, request, *args, **kwargs): form = self.get_form() if form.is_valid(): self._create_deck(form, request) profile = Profile.objects.filter(user=self.request.user).first() log_profile_activity(profile, constant.DECK_CREATE) return self.form_valid(form) else: return self.form_invalid(form)
def post(self, request, *args, **kwargs): form = self.get_form() if form.is_valid(): profile = Profile.objects.filter(user=self.request.user).first() subcription = form.save(commit=False) subcription.profile = profile subcription.save() log_profile_activity(profile, constant.PROFILE_SUBSCRIBE) return self.form_valid(form) else: return self.form_invalid(form)
def combat_action(request): if request.method != 'POST': raise Http404() if 'winner' in request.POST: profile = Profile.objects.filter(user=request.user).first() log_profile_activity(profile, 'combat.%s' % request.POST['winner']) if request.POST['winner'] == 'player': log_profile_activity(profile, 'credit.gain.10') profile.credits += 10 profile.save() return JsonResponse({}) target_deck_cards = request.session.get('target_deck_cards') selected_target_card_id, selected_target_card = random.choice( list(target_deck_cards.items())) del target_deck_cards[selected_target_card_id] request.session['target_deck_cards'] = target_deck_cards profile_deck_cards = request.session.get('profile_deck_cards') selected_player_card_id = request.POST['player_card'] selected_player_card = profile_deck_cards[selected_player_card_id] del profile_deck_cards[selected_player_card_id] request.session['profile_deck_cards'] = profile_deck_cards winner = "target_%s" % (selected_target_card['player_card']) looser = "profile_%s" % (selected_player_card['player_card']) player_state = 'looser' if selected_player_card['card_attack'] >= selected_target_card[ 'card_health']: winner = "profile_%s" % (selected_player_card['player_card']) looser = "target_%s" % (selected_target_card['player_card']) player_state = 'winner' print( "%s vs %s" % (selected_player_card['card_name'], selected_target_card['card_name'])) return JsonResponse({ 'selected_player_card': selected_player_card, 'selected_target_card': selected_target_card, 'winner': winner, 'looser': looser, 'player_state': player_state })