def friends(request):
и def home(request):
с методом Get
и def profile(request):
с методом Post
. поэтому первым шагом мы можем разделить их на if request.method == "POST"
. для отдельного процесса с тем же методом нам нужно прикрепить некоторый флаг к процессу из внешнего интерфейса (Html-javascript и т. д.) перед отправкой в django view.someth следующим образом:
template.html:
<form action="/navbar_aggregation" method="get">
<input type="text" name="type" value="friends" hidden>
<!-- other input tag will be here as you need-->
<input type="submit" value="Submit">
</form>
тогда вы можете получить доступ к типу в виде, как это. view.py:
def navbar_aggregation(request):
type = request.get.Get("type") # name of hidden input
if (type == "friends"):
# do same thing like 'def freinds(request)'
elif(type == "family"):
# do process for family form
else :
# do process for 'def home(request)'
так что теперь мы знаем, как можно разделить method = "Get" или method = "POST". поэтому ваш взгляд будет таким:
view.py:
def navbar_aggregation(request):
if request.method == "POST":
form = ProfileForm(request.POST)
if form.is_valid():
first_name = request.session['username']
print(first_name)
test = Profile.objects.filter(first_name=first_name).values()
for i in test:
dict1 = i
return render(request, 'index.html',
{'first_name': first_name, 'last_name': dict1['last_name'],
'phone_number': dict1['phone_number'], 'email':
dict1['email'],
'address': dict1['address'], 'image': dict1['image']})
else : # we are in method="GET"
type = request.get.Get("type") # name of hidden input
if(type == "friends"):
friends_obj = Friends.objects.all()
return render(request, 'index.html', {'friends_obj': friends_obj})
elif(type == "form"):
form = ProfileForm()
return render(request, 'profile.html', {'form': form})
elif(type == "foo"):
# do something for foo's form
return something
else: # for sure it should be home's request because haven't any tag for "type"
return render(request, 'index.html', {})
Дорогой друг, я тоже новичок в django, поэтому я думаю, что в моем коде ответа есть какая-то ошибка, но, возможно, я помогу тебе. Я ответил на твой вопрос, потому что не вижу ни одного профессионального разработчика, который бы отвечал на твой вопрос.