What i am trying todo is to create an instance of the request where depending on the users choices they will be create an AR or CD respectively.
Whenever the form is being submitted for some reason it is not giving me any error. It just refreshes the page without any indication what the error may be.
This is my views.py logic
def customer_request(request):
request_form = CustomerRequestForm()
container_deposit_form = ContainerDepositForm()
ar_collection_form = ARCollectionForm()
context = {
'form': request_form,
'form_2': container_deposit_form,
'form_3': ar_collection_form
}
if request.method == 'POST':
request_form = CustomerRequestForm(request.POST)
container_deposit_form = ContainerDepositForm(request.POST, request.FILES)
ar_collection_form = ARCollectionForm(request.POST, request.FILES)
branch = request_form.data['branch_office']
email = request_form.data['email']
blnum_form = request_form.data['bl_number']
if request_form.is_valid():
if Emails.objects.filter(email_list = email).exists():
print('This email already exists, use another one')
return ('customer_request')
bl_number = BLNumber.objects.create(bl_number=request_form.data['bl_number'])
email = Emails.objects.create(email_list=request_form.data['email'])
request_form.save(commit=True)
#Accounts Recivable validation
if request_form.data['request_type'] == 'AR':
if ar_collection_form.is_valid():
request_form.save(commit=True)
ar_collection_form.save(commit=True)
print('Successfully Created Accounts Recievable Reqeust')
return redirect('/')
else:
print('There was an Error in Ar')
return redirect('customer_request')
#Container Dep Validation
elif request_form.data['request_type'] == 'CD':
if container_deposit_form.is_valid():
request_form.save(commit=True)
container_deposit_form.save(commit=True)
print('Successfully Created Container Deposit Reqeust')
return redirect('/')
else:
print('There was an Error in CD')
return redirect('/customer_request')
else:
print('Invalid Request Type')
return redirect('customer_request')
else:
print('An Error Occured')
return redirect('customer_request')
return render(request, 'customer_form.html', context)
my models.py
class Emails(models.Model):
email_list = models.EmailField(max_length=70)
class Meta:
unique_together = ['email_list']
def __str__(self):
return self.email_list
class BLNumber(models.Model):
bl_number = models.CharField(max_length=255, unique=True)
def __str__(self):
return str(self.bl_number)
class ConArRequest(models.Model):
BRANCHES = {
'MNL': "Manila",
'SUB': 'Subic',
'CEB': 'Cebu',
'DVO': 'Davao',
'GENSAN': 'General Stantos',
'CDO': 'Cagayan De Oro',
}
TYPEOFFORM = {
'AR': "Accounts Receivable",
'CD': "Container Deposit",
}
#general Data Collection
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
branch_office = models.CharField(max_length=10, choices = BRANCHES)
email = models.EmailField(Emails, max_length=255)
bl_number = models.ForeignKey(BLNumber,max_length=255, on_delete=models.CASCADE)
request_type = models.CharField(max_length=10, choices=TYPEOFFORM)
container_deposit = models.OneToOneField('ContainerDeposit',
on_delete=models.PROTECT,
null=True,
blank=True
)
accounts_receivable = models.OneToOneField('ARCollection',
on_delete=models.PROTECT,
null=True,
blank=True
)
def __str__(self):
return str(self.bl_number)
class ContainerDeposit(models.Model):
condep_bl_number = models.ForeignKey(BLNumber, on_delete=models.PROTECT, blank=True, null=True)
request_num = models.AutoField(primary_key=True, editable=False)
batch_name = models.CharField(max_length=255, blank=True, null=True)
class ARCollection(models.Model):
arc_bl_number = models.ForeignKey(BLNumber, on_delete=models.PROTECT, blank=True, null=True)
request_num = models.AutoField(primary_key=True, editable=False)
consignee_name = models.CharField(max_length=255, blank=True, null=True)