コード例 #1
0
    def post(self, request):

        form = PostForm(request.POST, request.FILES, user=request.user)
        self.translate(form)
        message = ""

        if form.is_valid():
            form.instance.blog_id = form.data.get("blog_id")
            if not form.instance.date_pub:
                form.instance.date_pub = datetime.datetime.now()

            there_Is_A_File = False

            if form.instance.attachment:
                there_Is_A_File = True
                form.instance.attachment_type = form.instance.get_attachment_type(
                )
                if form.instance.attachment_type == Post.NONE:
                    form.instance.attachment = None

            form.save()
            if there_Is_A_File:
                form.instance.resizeImage.delay(form.instance.id)

            if there_Is_A_File and form.instance.attachment_type == Post.NONE:
                message = _(
                    "Se ha creado correctamente el post sin media file. Ver tipos de fichero admitidos."
                )
            else:
                message = _("Se ha creado correctamente el post")

            form = PostForm(user=request.user)

        context = {"form": form, "message": message}
        return render(request, 'blogs/new_post.html', context)
コード例 #2
0
 def post(self, request):
     post = Post()
     post.user = request.user  #select user autenticated
     form = PostForm(request.POST, request.FILES, instance=post)
     if form.is_valid():
         form.save()
         return redirect("home_page")
     return render(request, "create_post_form.html", {"form": form})
コード例 #3
0
def editPost(request, postid):
    post = Post.objects.get(pk=postid)
    form = PostForm(instance=post)
    if request.method == "POST":
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
            return redirect('showPost', postid)
    context = {'form': form, 'form_title': 'Edit Post', 'btn': 'Edit Post'}
    return render(request, 'blogs/new.html', context)
コード例 #4
0
def createPost(request):
    form = PostForm()
    if request.method == 'POST':
        form = PostForm(request.POST,request.FILES)
        if form.is_valid():
            form.save()
            return redirect('home-url')

    data = {
        'form': form
    }
    return render(request, template_name='blogs/createPost.html', context=data)
コード例 #5
0
ファイル: views.py プロジェクト: asdqwehan/myblog
def edit_blog(request, title_id):
    blog = MyBlog.objects.get(id=title_id)
    title = blog.title
    if blog.owner != request.user:
        raise Http404
    if request.method != 'POST':
        form = PostForm(instance=blog)
    else:
        form = MyBlogForm(instance=blog, data=request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse("blogs:title", args=[blog.id]))
    context = {'blog': blog, 'form': form, 'title': title}
    return render(request, 'blog/edit_blog.html', context)
コード例 #6
0
ファイル: dashboard.py プロジェクト: yunruse/bearblog
def post_edit(request, pk):
    blog = get_object_or_404(Blog, user=request.user)
    if not resolve_subdomain(request.META['HTTP_HOST'], blog):
        return redirect(f"{blog.useful_domain()}/dashboard")

    post = get_object_or_404(Post, blog=blog, pk=pk)
    published_date_old = post.published_date
    if request.method == "POST":
        form = PostForm(request.user, request.POST, instance=post)
        if form.is_valid():
            post_new = form.save(commit=False)
            post_new.blog = blog
            # This prevents the resetting of time to 00:00 if same day edit
            if (published_date_old and
                post_new.published_date and
                    published_date_old.date() == post_new.published_date.date()):
                post_new.published_date = published_date_old
            if not post_new.published_date:
                post_new.published_date = timezone.now()
            post_new.save()
            form.save_m2m()
    else:
        form = PostForm(request.user, instance=post)

    return render(request, 'dashboard/post_edit.html', {
        'form': form,
        'blog': blog,
        'post': post,
        'root': blog.useful_domain(),
    })
コード例 #7
0
def write(request, blogID):
    if request.method == 'POST':
        form = PostForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            blog = Blog.objects.get(num=blogID)
            user = blog.writer
            token = request.META.__getitem__('HTTP_X_TOKEN')

            if default_token_generator.check_token(user, token):
                    x = form.save(commit=False)
                    x.writer = user
                    x.blog = blog
                    post_id = (Post.objects.filter(blog__num=blogID).count() + 1)
                    x.num = post_id
                    x.save()
                    return JsonResponse({'status': 0, 'post_id': post_id})

            else:
                return JsonResponse({'status': -1, 'message': 'you are not logged in'})
        else:
            return JsonResponse({'status': -1, 'message': list(form.errors.keys())[0] + ": " + form.errors[list(form.errors.keys())[0]][0]})
    else:
        if request.method == 'GET':
            blog = Blog.objects.get(num=blogID)
            post = Post.objects.get(blog=blog, num=request.GET.__getitem__(id))
            if post is not None:
                return JsonResponse({'status': 0, 'post':{'title': post.title, 'summary': post.summary, 'text': post.text}})
            else:
                return JsonResponse({'status': -1, 'message': 'the post doesnt exist!'})
コード例 #8
0
    def post(self, request):

        success_message = ""

        blogs_list = Blog.objects.filter(owner__username__exact=request.user.username)
        if len(blogs_list) == 1:
            post_in_blog = Post()
            post_in_blog.blog = blogs_list[0]  # asigno como propietario de la foto el usuario autenticado
            form = PostForm(
                request.POST, instance=post_in_blog
            )  # basa la instancia de la petición en la que yo te paso. Mezcla campos!!
            if form.is_valid():
                new_post = form.save()  # Crea, guarda y devuelve el objeto
                form = PostForm()  # lo inicializamos tras guardar para que aparezca vacío de nuevo
                # Creamos nuestro mensaje de éxito con el link a la foto
                success_message = "Guardado con éxito!!"
                success_message += '<a href="{0}">'.format(
                    reverse("post_detail", args=[request.user.username, new_post.pk])
                )
                success_message += "See post"
                success_message += "</a>"
            context = {"form": form, "success_message": success_message}
            return render(request, "blogs/new_post.html", context)
        else:
            return HttpResponseNotFound("Houston, we have a problem")
コード例 #9
0
ファイル: views.py プロジェクト: TimpleSoft/Wordplease
    def post(self, request):
        """
        Crea un post a partir de la información POST
        """
        success_message = ''
        post_with_owner = Post()
        post_with_owner.owner = request.user # aquí asignamos al usuario como propietario del post
        form = PostForm(request.POST, instance=post_with_owner)

        if form.is_valid():

            new_post = form.save()
            form = PostForm() # reiniciamos el form
            success_message = 'Post almacenado con éxito! '
            success_message += '<a href="{0}">'.format(
                reverse('post_detail', args=[request.user.username, new_post.pk])
            )
            success_message += 'Ver post'
            success_message += '</a>'

            context = {
                'form': form,
                'success_message': success_message
            }
            return render(request, 'blogs/new_post.html', context)
コード例 #10
0
ファイル: dashboard.py プロジェクト: ryanrodemoyer/bearblog
def post_edit(request, pk):
    blog = get_object_or_404(Blog, user=request.user)
    if not resolve_subdomain(request.META['HTTP_HOST'], blog):
        return redirect(f"http://{get_root(blog.subdomain)}/dashboard")

    post = get_object_or_404(Post, blog=blog, pk=pk)
    if request.method == "POST":
        form = PostForm(request.user, request.POST, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.blog = blog
            if not post.published_date:
                post.published_date = timezone.now()
            post.save()
            form.save_m2m()
    else:
        form = PostForm(request.user, instance=post)

    return render(
        request, 'dashboard/post_edit.html', {
            'form': form,
            'blog': blog,
            'post': post,
            'root': get_root(blog.subdomain),
        })
コード例 #11
0
ファイル: views.py プロジェクト: pbalasimon/kc0507-backend
    def post(self, request, pk=None):
        post = Post(blog=request.user.blog)

        form = PostForm(request.POST, instance=post)

        if form.is_valid():
            if pk is not None:
                post.response = Post.objects.filter(pk=pk).first()
            form.save()
            send_email = self.need_send_email(post)
            if send_email:
                self.send_email_notification(post)
            return redirect(home)
        else:
            message = _("blogs.views.error_create_post")
            context = {"post": post, "form": form, "message": message}
            return render(request, 'blogs/post_new.html', context)
コード例 #12
0
def edit_post(request, post_id):
    """show the detail of post"""
    post = BlogPost.objects.get(id=post_id)
    check_object_owner(request, post)

    if request.method != 'POST':
        form = PostForm(instance=post)
    else:
        form = PostForm(instance=post, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('blogs:post', post.id)

    context = {
        'form': form,
        'post': post,
    }
    return render(request, 'blogs/edit_post.html', context)
コード例 #13
0
ファイル: views.py プロジェクト: shashgooner/bloggy
def post_blog(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.save()
            return redirect("index")
    else:
        form = PostForm()
    return render(request, "post_new.html", {"form": form})
コード例 #14
0
ファイル: views.py プロジェクト: hvctgr/Blogghr
    def post(self, request):
        post = Post()
        post.owner = request.user
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            new_post = form.save()
            messages.success(request, 'Post creado correctamente con ID {0}'.format(new_post.pk))
            form = PostForm()

        context = {'form': form}
        return render(request, 'blogs/new_post.html', context)
コード例 #15
0
def edit_post(request, post_id):
    """Edit an existing post."""
    post = get_object_or_404(Post, id=post_id)

    # Make sure the post belongs to the current user.
    if post.owner != request.user:
        return HttpResponseForbidden('<h1>403 Forbidden</h1>')

    if request.method != 'POST':
        # Initial request; pre-fill form with the current post.
        form = PostForm(instance=post)
    else:
        # POST data submitted; process data.
        form = PostForm(instance=post, data=request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('post', args=[post.id]))

    context = {'post': post, 'form': form}
    return render(request, 'blogs/edit_post.html', context)
コード例 #16
0
 def post(self, request):
     blog_post = Post()
     blog_post.user = request.user
     form = PostForm(request.POST, instance=blog_post)
     if form.is_valid():
         post = form.save()
         form = PostForm()
         url = reverse("post_detail_page", args=[request.user, post.pk])
         message = "Post created successfully! "
         message += '<a href="{0}">View</a>'.format(url)
         messages.success(request, message)
     return render(request, "post_form.html", {'form': form})
コード例 #17
0
ファイル: post.py プロジェクト: razum2um/socio
def new(request, blog_id):
    blog = get_object_or_404(Blog, id=blog_id)
    post_form = PostForm(request.POST or None)

    if post_form.is_valid():
        post = post_form.save(commit=False)
        post.author = request.user
        post.save()
        blog.posts.add(post)

        return redirect_to_view("post", id=post.id)

    return {"blog": blog, "post_form": post_form}
コード例 #18
0
def newPost(request):
    form = PostForm()
    tag_form = TagForm()
    if request.method == "POST":
        form = PostForm(request.POST)
        tag_form = TagForm(request.POST)
        if form.is_valid() and tag_form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            form.save()
            tags = tag_form.cleaned_data['tag']
            for i in tags.split(','):
                tag = Tag.objects.get_or_create(tag=i)[0]
                post.tags.add(tag)
            return redirect('showPost', post.id)
    context = {
        'form': form,
        'tag_form': tag_form,
        'form_title': 'Create New Post',
        'btn': 'Create Post'
    }
    return render(request, 'blogs/new.html', context)
コード例 #19
0
 def post(self, request):
     post_form = PostForm(request.POST)
     if post_form.is_valid():
         post = post_form.save(commit=False)
         post.created_by = request.user
         post.save()
         blog = Blog.objects.filter(user_owner=request.user).first()
         path = request.build_absolute_uri('/').strip("/")
         path += '/blogs/post/detail/{}/'.format(post.id)
         # Uncomment the next line for sending mail after creation posts
         # send_letter_to_user(blog, path)
         return HttpResponse('OK! Created post with  id:{}'.format(post.id))
     else:
         return HttpResponse('Error data is not valid!')
コード例 #20
0
def post_new(request):
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES or None)
        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            post.published = timezone.now()
            post.save()
            return redirect('blogs:blog', blog_id=post.id)
    else:
        form = PostForm()
    return render(request, 'add_blog.html', {
        'user': request.user,
        'form': form
    })
コード例 #21
0
    def post(self, request):
        """
        Procesa el formulario para la crear el anuncio
        :param request: objeto HttpRequest
        :return: HttpResponse con la respuesta
        """

        post = Post()
        post.owner = request.user
        form = PostForm(request.POST, request.FILES, instance=post)
        if form.is_valid():
            post = form.save()
            form = PostForm()
            messages.success(request, 'Anuncio creado correctamente')
        context = {'form': form}
        return render(request, 'blogs/form.html', context)
コード例 #22
0
def add_post(request):
    """show the detail of post"""

    if request.method != 'POST':
        form = PostForm()
    else:
        form = PostForm(data=request.POST)
        if form.is_valid():
            new_post = form.save(commit=False)
            new_post.owner = request.user
            new_post.save()
            return redirect('blogs:posts')
    context = {
        'form': form,
    }
    return render(request, 'blogs/add_post.html', context)
コード例 #23
0
    def post(self, request):

        form = PostForm(request.user, request.POST)

        if form.is_valid():
            post = form.save()

            message = "Post creado con éxito!"

            form = PostForm(request.user)
        else:
            message = "Se ha producido un error"

        context = {"form": form, "message": message}

        return render(request, 'blogs/new_post.html', context)
コード例 #24
0
def new_post(request):
    """Add a new post."""
    if request.method != 'POST':
        # No data submitted; create a blank form.
        form = PostForm()
    else:
        # POST data submitted; process data.
        form = PostForm(request.POST)
        if form.is_valid():
            new_post = form.save(commit=False)
            new_post.owner = request.user
            new_post.save()
            return HttpResponseRedirect(reverse('post', args=[new_post.id]))

    context = {'form': form}
    return render(request, 'blogs/new_post.html', context)
コード例 #25
0
    def post(self, request):
        """
        Crea un post en base a la información POST. Con el decorador @login_required() nos va a ejecutar esta función
        solamente en el caso de que el usuario esté autenticado. En caso contrario, redirigirá a una url del paquete
        django.contrib.auth que redefinimos en el settings.py LOGIN_URL. Esta es la magia que hace Django para
        redireccionar al usuario a una url en el caso de que intente acceder a una url protegida sólo accesible si
        está autenticado.
        :param request: Objeto HttpRequest con la petición
        :return: HttpResponse
        """
        success_message = ''

        # Creo un post vacío y le asigno el blog actual.
        post_with_blog = Post()
        post_with_blog.blog = request.user.blog

        # Le pedimos al formulario que en vez de usar la instancia que él crea, utilice la que le
        # indicamos con el post_with_blog. Con esto, guarda la instancia con todos los campos del
        # formulario, excepto del blog, que coge el que le indicamos nosotros que ha sido creado.
        form = PostForm(request.POST, instance=post_with_blog)

        if form.is_valid():
            # Si se valida correctamente creamos objeto post, lo guardamos en DB y lo devolvemos
            # Obtenemos el blog del usuario autenticado para guardarlo automáticamente.
            new_post = form.save()

            # Reiniciamos formulario y componemos mensaje con enlace al nuevo post creado. Para acceder a una url
            # nombrada en un controlador utilizamos la función reverse, con los argumentos de la url nombrada, en este
            # caso, el nombre del blog, y la pk del post.
            # Como por defecto Django escapa el HTML, necesitamos indicar que el enlace al nuevo post no escape HTML.
            # Lo indicamos en la plantilla con el |safe en el mensaje. Lo normal es que este trabajo se haga en el
            # template
            form = PostForm()
            success_message = '¡Post creado con éxito!  '
            success_message += '<a href="{0}">'.format(reverse('post_detail', args=[new_post.blog, new_post.pk]))
            success_message += 'Ver post'
            success_message += '</a>'

        context = {
            'form': form,
            'success_message': success_message
        }

        return self.renderize(request, context)
コード例 #26
0
ファイル: views.py プロジェクト: ymdx/Practica_Django
    def post(self,request):

        form = PostForm(request.user,request.POST)

        if form.is_valid():
            post = form.save()

            message = "Post creado con éxito!"

            form = PostForm(request.user)
        else:
            message = "Se ha producido un error"

        context = {
            "form": form,
            "message": message
        }

        return render(request, 'blogs/new_post.html', context)
コード例 #27
0
ファイル: views.py プロジェクト: dalvarezdp/wordplease
    def post(self, request):
        # crear el formulario con los datos del POST
        task_with_user = Post(owner=request.user)
        form = PostForm(request.POST, request.FILES, instance=task_with_user)

        # validar el formulario
        if form.is_valid():
            # crear el post
            post = form.save()

            return HttpResponseRedirect(
                reverse('blog_detail', args=[task_with_user.owner.username]))
        else:
            # mostrar mensaje de error
            message = "Se ha producido un error"

        # renderizar la plantilla
        context = {"form": form, "message": message}
        return render(request, 'blogs/new_post.html', context)
コード例 #28
0
    def post(self, request):
        """
        Presenta el formulario para crear una foto y, en caso de que la petición sea POST la valida
        y la crea en caso de que sea válida
        :param request: objeto HttpRequest con los datos de la petición
        :return: objeto HttpResponse con los datos de la respuesta
        """
        message = None
        post_with_user = Post(owner=request.user)
        post_form = PostForm(request.POST, instance=post_with_user)
        if post_form.is_valid():
            new_post = post_form.save()
            post_form = PostForm()
            message = 'Foto creada satisfactoriamente. <a href="{0}">Ver foto</a>'.format(
                reverse('photos_detail', args=[new_post.pk])
            )

        context = {'form': post_form, 'message': message}
        return render(request, 'photos/photo_creation.html', context)
コード例 #29
0
ファイル: views.py プロジェクト: mvelezserrano/wordplease
 def post(self, request):
     """
     Crea un post en base a la información POST
     :param request:
     :return:
     """
     success_message = ""
     post_with_owner = Post()
     post_with_owner.owner = request.user
     form = PostForm(request.POST, instance=post_with_owner)
     if form.is_valid():
         # Guardamos el objeto post y lo devolvemos
         new_post = form.save()
         form = PostForm()
         success_message = "Post generado con éxito!"
         success_message += '<a href="{0}">'.format(reverse("post_detail", args=[new_post.owner, new_post.pk]))
         success_message += " Ver post"
         success_message += "</a>"
     context = {"form": form, "success_message": success_message}
     return render(request, "blogs/new_post.html", context)
コード例 #30
0
    def post(self, request):
        """
        Creates a new post
        :param request: HttpRequest object
        :return:  HttpResponse object
        """
        new_post = Post(author=request.user)
        form = PostForm(request.POST, instance=new_post)
        context = dict()

        if form.is_valid():
            post = form.save()
            # Redirect to post detail
            return redirect('post_detail', username=post.author, pk=post.pk)
        else:
            context['error'] = "Error submitting new post"

        context['blog'] = request.user.username
        context['form'] = form
        return render(request, 'blogs/new_post.html', context)
コード例 #31
0
 def post(self, request):
     '''
     Post Form render. 
     If data are correct the form save the content if not sends a feedback.
     User must logged
     :param: request
     '''
     # blog_with_user = Blog(owner=request.user)
     blog_with_user = Blog.objects.filter(owner=request.user)
     if len(blog_with_user) == 0:
         return HttpResponse('You have to create a blog first')
     else:
         post_with_blog = Post(blog=blog_with_user[0])
         success_message = ''
         post_form = PostForm(request.POST, instance=post_with_blog)
     if post_form.is_valid():
         new_post = post_form.save()
         post_form = PostForm()
         success_message = 'Post succesfully created'
     context = {'form': post_form, 'message': success_message}
     return render(request, 'blogs/post-create.html', context)
コード例 #32
0
def post_new(request):
    blog = get_object_or_404(Blog, user=request.user)
    if not resolve_subdomain(request.META['HTTP_HOST'], blog):
        return redirect(f"{blog.useful_domain()}/dashboard")

    if request.method == "POST":
        form = PostForm(request.user, request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.blog = blog
            if not post.published_date:
                post.published_date = timezone.now()
            post.save()
            form.save_m2m()

            return redirect(f"/dashboard/posts/{post.id}/")

    else:
        form = PostForm(request.user)
    return render(request, 'dashboard/post_edit.html', {
        'form': form,
        'blog': blog
    })
コード例 #33
0
    def post(self, request):
        """
        Recibe los datos del nuevo post los valida y los guarda
        :param request: HttpRequest
        :return: HttpResponse        """

        # crear el formulario con los datos del post
        form = PostForm(request.POST)

        if form.is_valid():
            #crea el post
            post = form.save()

            #generar mensaje de exito
            msg = "Post creado con éxito"
            form = PostForm()
        else:
            msg = "Ha ocurrido un error al guardar el post" \

        # renderiza la plantilla con el formulario
        context = {"form": form, "msg": msg}

        # renderiza y devuelve la plantilla
        return render(request, 'blogs/new-post.html', context)
コード例 #34
0
    def post(self, request):
        success_message = ''

        # Creo un post vacío con el usuario para pasarselo al formulario
        # De este modo oculto el campo owner y lo cargo automaticamente.
        post_with_owner = Post()
        post_with_owner.owner = request.user
        form = PostForm(request.POST, instance=post_with_owner)

        if form.is_valid():
            # Creo el post con los datos del formulario y lo almaceno en nueva new_post
            new_post = form.save()
            form = PostForm()
            success_message = 'Guardado con exito!'
            success_message += '<a href="{0}">'.format(reverse('post_detail', args=[new_post.owner, new_post.pk]))
            success_message += 'Ver post'
            success_message += '</a>'

        context = {
            'form': form,
            'success_message': success_message
        }

        return render(request, 'blogs/post_create.html', context)