def post(self, request): blog = Blog() blog.owner = request.user form = BlogForm(request.POST, instance=blog) if form.is_valid(): new_blog = form.save() messages.success( request, 'Post creado correctamente con ID {0}'.format(new_blog.pk)) form = BlogForm() context = {'form': form} return render(request, 'new-post.html', context)
def create(self, request): serializer = UserSerializer(data=request.data) #TODOS LOS MÉTODOS REST VIENEN POR EL PARAMETRO 'DATA' DE LA REQUEST if serializer.is_valid(): new_user = serializer.save() # TODO - crear el usuario y su blog en una sóla llamada blog_for_newUser = Blog() blog_for_newUser.owner = new_user blog_for_newUser.name = new_user.first_name + ' ' + new_user.last_name + '\'s Personal Blog' blog_for_newUser.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): """ Shows a form to create a new blog :param request: HttpRequest :return: HttpRequest """ blog_with_owner = Blog() blog_with_owner.owner = request.user form = BlogForm(request.POST, instance=blog_with_owner) if form.is_valid(): new_blog = form.save() # Guarda el objeto y lo devuelve FTW return redirect('blog_detail', ownerName=new_blog.owner, pk=new_blog.pk) context = { 'form': form } return render(request, 'blogs/new_blog.html', context)
def post(self, request): """ Shows a form to create a new blog :param request: HttpRequest :return: HttpRequest """ blog_with_owner = Blog() blog_with_owner.owner = request.user form = BlogForm(request.POST, instance=blog_with_owner) if form.is_valid(): new_blog = form.save() # Guarda el objeto y lo devuelve FTW return redirect('blog_detail', ownerName=new_blog.owner, pk=new_blog.pk) context = {'form': form} return render(request, 'blogs/new_blog.html', context)
def post(self, request): form = RegistrationForm(request.POST) if form.is_valid(): new_user = form.save() # TODO - crear el usuario y su blog en una sóla llamada blog_for_newUser = Blog() blog_for_newUser.owner = new_user blog_for_newUser.name = new_user.first_name + ' ' +new_user.last_name + '\'s Personal Blog' blog_for_newUser.save() return redirect(reverse('users_login')) else: context = { 'signup_form': form } return render(request, 'users/sign-up.html', context)
def post(self, request): """ Método para cuando el signup viene del método HTTP get :param request: HttpRquest :return: render que contruye un HttpResponse con el template indicado """ # Mensaje de éxito al crear nuevo usuario success_message = '' # Crearemos un Django Form para presentarlo en la plantilla # Todos los valores del formulario se inicializan con los valores que vienen en el POST form = SignupForm(request.POST) # Si el formulario es válido, guardamos usuario if form.is_valid(): new_user = User.objects.create_user(form.cleaned_data.get('username'), form.cleaned_data.get('email'), form.cleaned_data.get('password')) new_user.first_name = form.cleaned_data.get('first_name') new_user.last_name = form.cleaned_data.get('last_name') new_user.is_staff = False # Guardamos usuario new_user.save() # Creamos blog con el nuevo usuario blog = Blog() blog.owner = new_user blog.save() # Reseteamos formulario form = SignupForm() success_message = 'OK' # Creamos contexto con mensaje éxito context = { 'signup_form': form, 'success_message': success_message } # Mandamos respuesta con error a través de la plantilla return render(request, 'users/registro.html', context)
def post(self, request): """ Método para cuando el signup viene del método HTTP get :param request: HttpRquest :return: render que contruye un HttpResponse con el template indicado """ # Mensaje de éxito al crear nuevo usuario success_message = '' # Crearemos un Django Form para presentarlo en la plantilla # Todos los valores del formulario se inicializan con los valores que vienen en el POST form = SignupForm(request.POST) # Si el formulario es válido, guardamos usuario if form.is_valid(): new_user = User.objects.create_user( form.cleaned_data.get('username'), form.cleaned_data.get('email'), form.cleaned_data.get('password')) new_user.first_name = form.cleaned_data.get('first_name') new_user.last_name = form.cleaned_data.get('last_name') new_user.is_staff = False # Guardamos usuario new_user.save() # Creamos blog con el nuevo usuario blog = Blog() blog.owner = new_user blog.save() # Reseteamos formulario form = SignupForm() success_message = 'OK' # Creamos contexto con mensaje éxito context = {'signup_form': form, 'success_message': success_message} # Mandamos respuesta con error a través de la plantilla return render(request, 'users/registro.html', context)
def create(self, request): """ Endpoint de creación de usuario. Guardamos automáticamente también el blog con su nombre de usuario :param request: :return: """ # Creamos serializador a partir de los datos de la petición. En rest framwork, para evitar request.POST, # request.GET, etc., se utiliza simplemente data serializer = UserSerializer(data=request.data) if serializer.is_valid(): new_user = serializer.save() # Guardamos blog para el nuevo usuario user_blog = Blog() user_blog.owner = new_user user_blog.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): form = SignupForm(request.POST) self.translate(form) context = dict() if form.is_valid(): if User.objects.filter( username=form.cleaned_data.get("username")).exists(): form.add_error("username", _("El usuario ya existe")) else: user = User() user.username = form.cleaned_data.get("username") user.set_password(form.cleaned_data.get("password")) user.first_name = form.cleaned_data.get("first_name") user.last_name = form.cleaned_data.get("last_name") user.email = form.cleaned_data.get("email") try: user.save() blog = Blog() if user.first_name or user.last_name: blog.name = "Blog de " + user.first_name + " " + user.last_name else: blog.name = "Blog de " + user.username blog.owner = user blog.save() url = request.GET.get('next', '/new-post') return redirect(url) except Error as err: form.add_error("__all__", _("Error en acceso a base de datos")) print("Error en acceso a base de datos: ", err) context["form"] = form return render(request, 'signup.html', context)
def post(self, request): """ Procesa el formulario de creación de un blog :param request: objeto HttpRequest :return: HttpResponse con respuesta """ blog = Blog() try: blog.owner = User.objects.get(username=request.user) except Blog.DoesNotExist: return HttpResponse('Este usuario no existe', status=404) form = BlogForm(request.POST, request.FILES, instance=blog) if form.is_valid(): new_blog = form.save() form = BlogForm() messages.success(request, 'Blog creado correctamente') context = {'form': form} return render(request, 'blogs/form.html', context)
def post(self, request): """ Endpoint de creación de usuario. Por convención, se utiliza la url de listado con una petición POST para la creación de un objeto de ese listado. En el serializer.save() comprueba automáticamente si tiene instasncia del User; si no la tiene, llama al método create del serializer. """ # Creamos serializador a partir de los datos de la petición. En rest framwork, para evitar request.POST, # request.GET, etc., se utiliza simplemente data serializer = UserSerializer(data=request.data) if serializer.is_valid(): # Guardamos el usuario a través del serializer y devolvemos los datos del objeto creado new_user = serializer.save() # Guardamos blog para el nuevo usuario user_blog = Blog() user_blog.owner = new_user user_blog.save() # Respondemos código 201 (creado) y los datos del objeto creado return Response(serializer.data, status=status.HTTP_201_CREATED) else: # Devolvemos diccionario con errores y el código 400 (petición errónea) si algo fue mal return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)