我在Django中处理表单上传并成功保存表单后,尝试将用户重定向到一个新的URL时,遇到了NoReverseMatch
错误。
@login_required
def profile(request):
if request.method == 'POST':
profile_form = UpdateProfileForm(request.POST, request.FILES, instance=request.user.profile)
files = request.FILES.getlist('resume')
resumes_data = []
if profile_form.is_valid():
for file in files:
try:
# saving the file
resume = profile_form.cleaned_data['resume']
parser = ResumeParser(file.temporary_file_path())
data = parser.get_extracted_data()
resumes_data.append(data)
profile_form.instance.name = data.get('name')
profile_form.instance.email = data.get('email')
profile_form.instance.mobile_number = data.get('mobile_number')
if data.get('degree') is not None:
profile_form.instance.education = ', '.join(data.get('degree'))
else:
profile_form.instance.education = None
profile_form.instance.company_names = data.get('company_names')
profile_form.instance.college_name = data.get('college_name')
profile_form.instance.designation = data.get('designation')
profile_form.instance.total_experience = data.get('total_experience')
if data.get('skills') is not None:
profile_form.instance.skills = ', '.join(data.get('skills'))
else:
profile_form.instance.skills = None
if data.get('experience') is not None:
profile_form.instance.experience = ', '.join(data.get('experience'))
else:
profile_form.instance.experience = None
profile_form.save()
return redirect('users-profile')
except IntegrityError:
messages.warning(request, 'Duplicate resume found')
return redirect('users-profile')
profile_form.save()
messages.success(request, 'Your profile is updated successfully')
# return redirect(reverse('userprofile', kwargs={"id": request.user}))
return redirect('userprofile')
else:
profile_form = UpdateProfileForm(instance=request.user.profile)
return render(request, 'user/resumeprofile.html', {'profile_form': profile_form})
@login_required
def myprofile(request, user_id):
profile = Profile.objects.get(id=user_id)
context = {'profile':profile}
return render(request, 'user/profile.html', context)
下面是我的urls.py
:
urlpatterns = [
path('', jobs_views.home, name='home'), #this is home function inside the views.py in the jobs folder
path('contact',jobs_views.contact, name='contact'),
# path('jobs/', jobs_views.job_list, name='job-list'),
path('jobs/<slug:slug>', jobs_views.job_detail, name='job_detail'), #slug will help us identify the specific instance of job
path('jobs-search/', jobs_views.job_search, name='job_search'),
path('profile/', jobs_views.profile, name='users-profile'),
path('userprofile/<int:user_id>',jobs_views.myprofile, name='userprofile')
]
当我将用户重定向到userprofile
时发生错误,但当我将他们重定向到users-profile
时没有收到任何错误。附件是显示的错误消息的屏幕截图。The Screenshot of the error
任何帮助都将不胜感激。
1条答案
按热度按时间egmofgnx1#
您可以通过从请求中获取用户ID来绕过它,因为他们需要登录。
在
urls.py
路径中,将路径userprofile
更改为:然后在
myprofile
视图中,更改为: