Advertisement
jklinerosb

Error viesw.py editarProyecto

May 18th, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.91 KB | None | 0 0
  1. from django.shortcuts import render
  2. from apps.proyectos.models import *
  3. from apps.proyectos.forms import *
  4. from django.shortcuts import render_to_response, get_object_or_404
  5. from django.http import HttpResponseRedirect, Http404, HttpResponse
  6. from django.template import RequestContext
  7. from django.contrib.auth.decorators import login_required
  8. from datetime import timedelta
  9. from django.db.models import *
  10. from django.forms.models import modelformset_factory
  11. from django.utils.encoding import force_unicode
  12. from django.utils.translation import ugettext_lazy as _
  13.  
  14. # Create your views here.
  15. @login_required
  16. def misProyectos(request):
  17. proyectos=Proyecto.objects.filter(usuario=request.user)
  18. return render_to_response('proyectos/misproyectos.html', {'proyectos':proyectos,}, context_instance=RequestContext(request))
  19.  
  20. @login_required
  21. def crearProyecto(request):
  22. if request.method == 'POST':
  23. form = crearProyectoF(request.POST, request.FILES)
  24. formC = categoriasF(request.POST)
  25. p=Proyecto.objects.filter(usuario=request.user)
  26. if p.count() < 3:
  27. if form.is_valid() and formC.is_valid():
  28. formC.save()
  29. usuario=form.save(commit=False)
  30. usuario.usuario=User.objects.get(id=request.user.id)
  31. cates=formC.save(commit=True)
  32. usuario.Categorias= Categorias.objects.get(id=cates.id)
  33. usuario.save()
  34. formC.save()
  35. form.save()
  36. return HttpResponseRedirect('/usuarios/proyectocreado/')
  37. else:
  38. return HttpResponseRedirect('/usuarios/proyectoerror/')
  39. else:
  40. form = crearProyectoF()
  41. formC = categoriasF()
  42.  
  43. return render_to_response('proyectos/agregar.html', {'form':form, 'formC':formC}, context_instance=RequestContext(request))
  44.  
  45. @login_required
  46. def userdetails(request):
  47. usuario=User.objects.all().filter(username=request.user)
  48. UserFormSet=modelformset_factory(User, max_num=0, exclude=('username', 'password','is_staff', 'is_active', 'is_superuser','last_login', 'user_permissions', 'groups', 'date_joined'))
  49. form=UserFormSet(queryset=usuario)
  50. if request.method=='POST':
  51. form=UserFormSet(request.POST, request.FILES, queryset=usuario)
  52. if form.is_valid():
  53. form.save()
  54.  
  55. return render_to_response('perfil/editar.html',{'form':form}, context_instance=RequestContext(request))
  56.  
  57.  
  58. ------ en la funcion editarProyecto tengo una falla y es que en mi plantilla html no me muestra el formulario de multiples opciones que si se muestra en la insercion de nuevos proyectos (funcion anterior)---------------
  59. @login_required
  60. def editarProyecto(request, proyecto_id):
  61. try:
  62. Proyecto.objects.get(pk=proyecto_id, usuario=request.user)
  63. proyectoFormset=modelformset_factory(Proyecto, max_num=0, can_delete=True, form=crearProyectoF)
  64. categoriasFormset=modelformset_factory(Categorias, max_num=0, form=categoriasF)
  65.  
  66. if request.method=='POST':
  67. formP=proyectoFormset(request.POST, request.FILES, queryset=Proyecto.objects.all().filter(pk=proyecto_id))
  68. form=categoriasFormset(request.POST, queryset=Categorias.objects.all().filter(pk=Proyecto.objects.get(pk=proyecto_id).id))
  69. if formP.is_valid() and form.is_valid():
  70. formP.save()
  71. form.save()
  72. return HttpResponseRedirect('/usuarios/proyectocreado/')
  73. else:
  74. formP=proyectoFormset(queryset=Proyecto.objects.all().filter(pk=proyecto_id))
  75. form=categoriasFormset(queryset=Categorias.objects.all().filter(pk=Proyecto.objects.get(pk=proyecto_id).id))
  76.  
  77. except Proyecto.DoesNotExist:
  78. return HttpResponseRedirect('/usuarios/misproyectos/')
  79. return render_to_response('proyectos/editar.html',{'formP':formP,'form':form,}, context_instance=RequestContext(request))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement