I created a view where users could update subscriptions in their profiles, but when i went to add a new user i realized that i hadn't figured in creating new subscriptions. So what i had was:
models.py
class Customer_Subscription(models.Model):
user = models.ForeignKey(User)
customers = models.ManyToManyField('Customers', blank=True)
def __unicode__(self):
return (self.user)
forms.py
class CustomerSubscriptionForm(forms.ModelForm):
class Meta:
model = Customer_Subscription
fields = ['customers']
views.py
def profile(request):
if request.method == 'POST':
cust_subscription_instance = Customer_Subscription.objects.get(user=request.user.id)
customer_subscription = CustomerSubscriptionForm(request.POST, instance=cust_subscription_instance)
if customer_subscription.is_valid() and level_subscription.is_valid() and profile_form.is_valid():
customer_subscription.save(commit=True)
return HttpResponseRedirect('/profile/')
Since there was no instance of the Customer_Subscription object that query was failing. I've tried several things as "exceptions" but none seem to work, and i don't know which if any are close to being correct. Looking for some help.
views.py
try:
cust_subscription_instance = Customer_Subscription.objects.get(user=request.user.id)
customer_subscription = CustomerSubscriptionForm(request.POST, instance=cust_subscription_instance)
if customer_subscription.is_valid() and level_subscription.is_valid() and profile_form.is_valid():
customer_subscription.save(commit=True)
return HttpResponseRedirect('/profile/')
except:
customer_subscription = CustomerSubscriptionForm(request.user.id, request.POST)
if customer_subscription.is_valid():
customer_subscription.save(commit=True)
level_subscription.save(commit=True)
return HttpResponseRedirect('/profile/')