コード例 #1
0
 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)
コード例 #2
0
    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)
コード例 #3
0
ファイル: views.py プロジェクト: Pepe-Padilla/Worldplease
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
ファイル: views.py プロジェクト: joviman69/Modulo8_Django
    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)
コード例 #12
0
    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)