Advertisement
bgarcial

fbv to update profile user

Apr 11th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. @login_required
  2. def account_profiles_view(request, slug):
  3.     user = request.user
  4.    
  5.     # No se si esta consulta al modelo sea necesaria puesto
  6.     # que en el anterior user = request.user ya viene la instancia del
  7.     # usuario que envia la petición
  8.     user = get_object_or_404(User, username = slug)
  9.     # user = User.objects.get(username = slug)
  10.  
  11.     _forms = []
  12.     if user.is_student:
  13.         profile = user.get_student_profile()
  14.  
  15.         _forms.append(forms.StudentProfileForm(instance=user))
  16.     if user.is_professor:
  17.         profile = user.get_professor_profile()
  18.         _forms.append(forms.ProfessorProfileForm(instance=user))
  19.     if user.is_executive:
  20.         profile = user.get_executive_profile()
  21.         _forms.append(forms.ExecutiveProfileForm(instance=user))
  22.  
  23.     if request.method == 'POST':
  24.         formularios =[Form(data = request.POST) for Form in _forms]
  25.         if all([form.is_valid() for form in formularios]):
  26.             for form in formularios:
  27.                 profile = form.save(commit=False)
  28.                 profile.user = user
  29.                 profile.save()
  30.             return redirect('dashboard')
  31.     else:
  32.         formularios = [Form() for Form in _forms] # aqui se genera el error
  33.     data = {form.__class__.__name__.__str__().lower(): form for form in formularios}
  34.     data['userprofile'] = profile
  35.     return render(request, 'accounts/profile_form.html', data,)
  36.  
  37.  
  38. # Pero el error que obtengo es esto, diciendo que el primer form instanciado
  39. # no es invocable desde allí ¿?
  40.  
  41. File "/home/bgarcial/workspace/ihost_project/accounts/views.py", line 238, in account_profiles_view
  42.     formularios = [Form() for Form in _forms]
  43.   File "/home/bgarcial/workspace/ihost_project/accounts/views.py", line 238, in <listcomp>
  44.     formularios = [Form() for Form in _forms]
  45. TypeError: 'StudentProfileForm' object is not callable
  46. [11/Apr/2017 14:27:26] "GET /accounts/profile/zidane/ HTTP/1.1" 500 86728
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement