Python Django Authentication Users and Authorization Checkpoints

igsm '
igsm '
10,440 Points

Challenge Task 2?

Can't figure it out for the second objective. I used my minimalistic understanding of the material. I feel lost, completely. Please help me out.

class Create(LoginRequiredMixin, generic.CreateView):
    fields = ("name", "description", "discount", "price")
    model = models.Product

    def form_valid(self, form):
        if not self.request.user.has_perm():
            self.model.discount = 0
        form.save()
        return super().form_valid(form)

1 Answer

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 56,949 Points

There are a few items need fixing:

:point_right: Before the if statement, define the self.object:

        self.object = form.save(commit=False)  # <-- create self.object to modify

:point_right: has_perm requires a permission argument to check. Use 'products.can_give_discount' (include quotes)

:point_right: After if statement, save self.object.save() not form.save()

:point_right: In super() specify the class: super(Create, self).form_valid(form)

Post back if you need more help. Good luck!!