Reputation: 137
I'm trying to perform 2 operation with in a single function view. But it perform only first operation. Which operation i mentioned first only that operation is executed second operation is not executed. Any other way to solve this problem.
def home_view(request):
if 'username' in request.session:
if 'username' in request.session:
username = request.session['username']
business_objs = AddBusiness.objects.all().values()
return render(request, 'home/index.html', {'business_objs': business_objs})
elif request.method == 'GET':
username = request.session['username']
form = ProfileForm(request.POST)
if form.is_valid():
profile_info = Profile.objects.filter(username=username).values()
for i in profile_info:
profiledict = i
return render(request, 'home/index.html',
{'profile_first_name': profiledict['first_name'],
'profile_last_name': profiledict["last_name"],
'profile_phone_number': profiledict['phone_number'],
'profile_email': profiledict['email'], 'profile_address': profiledict['address'],
'profile_image': profiledict['image']})
return redirect('/home/')
return redirect('/home/')
else:
return redirect('/login/')
Upvotes: 0
Views: 86
Reputation: 51978
I think you can try like this:
def home_view(request):
if 'username' in request.session:
if 'request.method == 'GET':
username = request.session['username']
business_objs = AddBusiness.objects.all().values()
return render(request, 'home/index.html', {'business_objs': business_objs})
elif request.method == 'POST':
username = request.session['username']
form = ProfileForm(request.POST)
if form.is_valid():
profile_info = Profile.objects.filter(username=username).values()
for i in profile_info:
profiledict = i
return render(request, 'home/index.html',
{'profile_first_name': profiledict['first_name'],
'profile_last_name': profiledict["last_name"],
'profile_phone_number': profiledict['phone_number'],
'profile_email': profiledict['email'], 'profile_address': profiledict['address'],
'profile_image': profiledict['image']})
return redirect('/home/')
return redirect('/home/')
else:
return redirect('/login/')
In that way, you will be able to handle both GET
and POST
request using this function based view. More information can be found in documentation
.
Upvotes: 1