Note that there are some explanatory texts on larger screens.

plurals
  1. PODjango FormView Not Saving
    primarykey
    data
    text
    <p>My form isn't saving the models that I need it to. My form:</p> <pre><code>class RewardForm(forms.Form): quantity = forms.IntegerField(max_value=10, min_value=1, label=_('quantity'), initial=1) reward = forms.CharField(max_length=50, label=_('reward')) reward_denomination = forms.ModelChoiceField(queryset=Reward_Denomination.objects.all(), widget=forms.RadioSelect) def clean_reward(self): data = self.cleaned_data.get('reward') try: reward = Reward.objects.get(reward_name=data) except ObjectDoesNotExist: raise forms.ValidationError(_('Reward does not exist'), code='invalid') return data def clean_reward_denomination(self): data = self.cleaned_data.get('reward_denomination') try: denomination = Reward_Denomination.objects.get(denomination=data) except ObjectDoesNotExist: raise forms.ValidationError(_('Denomination does not exist'), code='invalid') return data def save(self, request, commit=True): user = request.user data = self.cleaned_data 'try: post_reward = data['reward'] post_denomination = data['reward_denomination'] quantity = data['quantity'] except LookupError: raise Http404 reward = Reward.objects.get(reward_name=post_reward) denomination = Reward_Denomination.objects.get(denomination=post_denomination) user_points = Points.objects.filter(affiliate__id=user.id).aggregate(total_points=Sum('points')) user_points = user_points['total_points'] try: total_cost = (quantity * denomination.cost) except ArithmeticError: raise Http404 quote_price = -total_cost if user_points &gt;= total_cost: reward_order = Points.objects.create(affiliate=user, points=quote_price, from_reward=True, from_offer=False) status_coded = Status_Code.objects.create(short_name="Pending", name="The order is currently being reviewed", description="The order is in queue") redeem_order = Redeem.objects.create(affiliate=user, status_code=status_coded, quantity=quantity, reward=reward, price=total_cost) return reward_order </code></pre> <p>My Views:</p> <pre><code>class Reward_Detail(DetailView): model = Reward slug_field = 'reward_slug' context_object_name = 'reward' template_name = 'omninectar/reward.html' #Detail Stuff class RedeemReward(SingleObjectMixin, FormView): template_name = 'omninectar/reward.html' slug_field = 'reward_slug' form_class = RewardForm model = Reward def post(self, request, *args, **kwargs): self.object = self.get_object() return super(RedeemReward, self).post(request, *args, **kwargs) def get_success_url(self): return reverse('omni:reward_confirmation') class RewardBeautify(View): def get(self, request, *args, **kwargs): view = Reward_Detail.as_view() return view(request, *args, **kwargs) def post(self, request, *args, **kwargs): view = RedeemReward.as_view() return view(request, *args, **kwargs) </code></pre> <p>So I initially thought that the FormView would handle the form processing (validate, and, if valid, run form.save(), etc). I'm following the <a href="https://docs.djangoproject.com/en/dev/topics/class-based-views/mixins/#an-alternative-better-solution" rel="nofollow">FormView, SingleObjectMixin</a> example on the Django website. I don't receive any errors when I try and submit the form, but no objects are created either. I've tried defining a form_valid method that runs the save method, I've tried putting it inside the post method in the formview, etc. Can anyone spot the error/errors? Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload