code: def get_all_context(self):
          
          self.plan_pricing = get_object_or_404(PlanPricing.objects.all().select_related('plan', 'pricing'),
                                                Q(pk=self.kwargs['pk']) & Q(plan__available=True) & (
                                                    Q(plan__customized=self.request.user) | Q(
                                                        plan__customized__isnull=True)))
  
  
          # User is not allowed to create new order for Plan when he has different Plan
          # He should use Plan Change View for this kind of action
          if not self.request.user.userplan.is_expired() and self.request.user.userplan.plan != self.plan_pricing.plan:
              raise Http404
  
          self.plan = self.plan_pricing.plan
          self.pricing = self.plan_pricing.pricing
docs: Retrieves Plan and Pricing for current order creation