示例#1
0
def post_edit(request, pk):
    post = get_object_or_404(Post, pk=pk)
    photo = post.photo
    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)
        if request.FILES.get('image'):
            # 画像が送信されている場合は、新規保存を試みる
            photo_form = PhotoForm(request.POST, request.FILES)
            if photo_form.is_valid():
                photo = photo_form.save()
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.photo = photo
            post.save()
            form.save_m2m()
            return redirect('blog:post_detail', pk=post.pk)
    else:
        form = PostForm(instance=post)
        photo_form = PhotoForm(instance=photo)
    return render(request, 'blog/post_edit.html', {
        'form': form,
        'photo_form': photo_form
    })
示例#2
0
def post_edit(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST":
        form = PostForm(request.POST or None, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            posts = Ingredient.objects.all()
            post_numder = post.pk
            for ing in request.POST.getlist('ingredients'):
                theing = Ingredient.objects.get(pk=ing)
                post.ingredients.add(theing.id)
            post.save()
            form.save_m2m()
            # messages.success(request, "<a href='#'>Item</a> Saved", extra_tags='html_safe')
            # return HttpResponseRedirect(instance.get_absolute_url())
            context = {
                "title": post.title,
                "instance": post,
                "form": form,
                "posts":posts,
            }
            # return render(request, 'blog/post_edit.html', context)
            return redirect('post_detail', pk=post.pk)

    else:
        form = PostForm(instance=post)
        posts = Ingredient.objects.all()
    return render(request, "blog/post_edit.html", {'form': form, 'posts': posts})
示例#3
0
def post_update(request, pk):
    post = get_object_or_404(Post, pk=pk)
    # If request is POST, create a bound form(form with data)
    if request.method == "POST":
        f = PostForm(request.POST, instance=post)
        if f.is_valid():
            # if author is not selected and user is superuser, then assign the post to the author named staff
            if request.POST.get('author') == "" and request.user.is_superuser:
                updated_post = f.save(commit=False)
                author = Author.objects.get(user__username='******')
                updated_post.author = author
                updated_post.save()
                f.save_m2m()
            # if author is selected and user is superuser
            elif request.POST.get('author') and request.user.is_superuser:
                updated_post = f.save()
            # if user is not a superuser
            else:
                updated_post = f.save(commit=False)
                updated_post.author = Author.objects.get(
                    user__username=request.user.username)
                updated_post.save()
                f.save_m2m()

            messages.add_message(request, messages.INFO, 'Post updated')
            return redirect(reverse('post_update', args=[post.id]))
    # if request is GET the show unbound form to the user
    else:
        f = PostForm(instance=post)
    return render(request, 'cadmin/post_update.html', {
        'form': f,
        'post': post
    })
示例#4
0
def post_new(request):
    args = {}
    if request.method == 'POST':
        form = PostForm(request.POST or None, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            i=0
            ingredients1 = Ingredient.objects.all()
            post.published_date = timezone.now()
            print(request.POST.getlist('quantity'))
            for item in request.POST.getlist('quantity'):
                i=i+1
                if int(item) !=0:
                  w = Wasted.objects.all().get(pk=i)
                  w.weight = int(item)
                  w.save()
                  if Ingredient.objects.all().get(name=w.name, pk=i).weight >0:
                      ingr = Ingredient.objects.all().get(name=w.name, pk=i)
                      ingr.weight = ingr.weight - w.weight
                      ingr.save()
                  else:
                      args['login_error'] = "нет на складе продукта"
                      args['login_error'] = args['login_error']+w.name
                      return render_to_response('post_new', args)
            post.save()
            form.save_m2m()
            # post.ingredients()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
        posts = Ingredient.objects.all()
    return render(request, 'blog/post_edit.html', {'form': form, 'posts': posts})
示例#5
0
def post_update(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST":
        f = PostForm(request.POST, instance=post)
        slug = slugify(request.POST['title'])
        if f.is_valid():
            r = f.save(commit=False)
            p = Post.objects.filter(slug__startswith=slug)
            if post not in p:
                if not len(p):
                    r.slug = slug
                else:
                    r.slug = slug + '-{}'.format(len(p))
            r.save()
            f.save_m2m()
            messages.add_message(request, messages.INFO, 'Post updated.')
            return redirect(
                reverse('blog:post_detail',
                        kwargs={
                            'pk': post.id,
                            'post_slug': post.slug
                        }))

    else:
        f = PostForm(instance=post)
    return render(request, 'cadmin/post_update.html', {
        'form': f,
        'post': post
    })
示例#6
0
def post_add(request):
    if request.method == "POST":
        f = PostForm(request.POST)
        if f.is_valid():
            # if author is not selected and user is superuser, then assign the post to staff
            if request.POST.get('author') == "" and request.user.is_superuser:
                new_post = f.save(commit=False)
                author = Author.objects.get(user__username='******')
                new_post.author = author
                new_post.save()
                f.save_m2m()
            # if author is selected and user is superuser
            elif request.POST.get('author') and request.user.is_superuser:
                new_post = f.save()
            # if user is not a superuser
            else:
                new_post = f.save(commit=False)
                new_post.author = Author.objects.get(
                    user__username=request.user.username)
                new_post.save()
                f.save_m2m()
            messages.add_message(request, messages.INFO, 'Post added')
            return redirect('post_add')
    else:
        f = PostForm()
    return render(request, 'cadmin/post_add.html', {'form': f})
示例#7
0
文件: views.py 项目: K-DOT/it_blog
def add_edit_post(request, slug=None):
    if request.method == 'GET':
        form = PostForm()
        if slug:  # If editing
            post = get_object_or_404(Post, slug=slug)
            if request.user.is_staff or request.user == post.author:
                form = PostForm(instance=post)
            else:
                raise PermissionDenied
    else:  # POST
        if not slug:
            form = PostForm(request.POST)
        else:
            form = PostForm(request.POST, instance=get_object_or_404(Post, slug=slug))
        if form.is_valid():
            instance = form.save(commit=False)
            if not getattr(instance, 'author'):
                instance.author = request.user
            if not request.user.is_staff:
                instance.approved = False
            instance.text = clean_untrusted_tags(instance.text)
            instance.save()
            form.save_m2m()
            return render(request, 'add_post_success.html', {})
    return render(request, 'add_edit_post.html', {
        'form': form,
        'edit': slug is not None
    })
示例#8
0
def post_add(request):
    #If request is POST, create a bound forms
    if request.method == 'POST':
        f = PostForm(request.POST)

        if f.is_valid():
            if request.POST.get('author') == '' and request.user.is_superuser:
                new_post = f.save(commit=False)
                author = Author.objects.get(user__username='******')
                new_post.author = author
                new_post.save()
                f.save_m2m()

            elif request.POST.get('author') and request.user.is_superuser:
                new_post = f.save()

            else:
                new_post = f.save(commit=False)
                new_post.author = Author.objects.get(
                    user__username=request.user.username)
                new_post.save()
                f.save_m2m()

            messages.add_message(request, messages.INFO, 'Post added')
            return redirect('post_add')

        else:
            print(f.errors)

    #if form is valid, save data to database, redirect back to post_add view

    #if request is GET, show unbound form
    else:
        f = PostForm()
    return render(request, 'cadmin/post_add.html', {'form': f})
示例#9
0
 def post(self, request, booklog_id):
     booklog = get_object_or_404(BookLog, pk=booklog_id)
     post_form = PostForm(request.POST, request.FILES)
     if post_form.is_valid():
         instance = post_form.save(commit=False) 
         instance.blog_author = request.user
         instance.content_type = ContentType.objects.get_for_model(BookLog)
         instance.content_object = booklog
         instance.object_id = booklog.id
         instance.save()
         post_form.save_m2m()
         return HttpResponseRedirect(instance.get_absolute_url())
     return self.get(request, booklog_id)
示例#10
0
def post_new(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.save()
            form.save_m2m()
            return redirect('blog:post_detail', pk=post.pk)
    else:
        form = PostForm()

    return render(request, 'blog/post_edit.html', {'form': form})
示例#11
0
def create_post(request):
    form = PostForm(data=request.POST or None)
    if form.is_valid():
        post = form.save(commit=False)
        post.author = request.user
        post.save()
        post.tags.set(form.cleaned_data.get('tags'))
        form.save_m2m()

        messages.info(request, 'Your post has been created')
        return redirect('post_list')
    else:
        form = PostForm()
    return render(request, 'blog/post_create.html', {'form': form})
示例#12
0
def post_edit(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            # post.published_date = timezone.now()
            post.save()
            form.save_m2m()
            return redirect('blog:post_detail', pk=post.pk)
    else:
        form = PostForm(instance=post)
    return render(request, 'blog/post_edit.html', {'form': form})
示例#13
0
def add_post(request):
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            item = form.save(commit=False)
            item.author = request.user
            item.save()
            form.save_m2m()
            return redirect(item.get_absolute_url())
    else:
        form = PostForm()
        return render(request, 'blog/post_form.html', {
            'form': form,
            'title': 'Add Post'
        })
示例#14
0
def post_new(request):
    if request.user.is_superuser:
        if request.method != 'POST':
            form = PostForm()
            context = {'form': form}
            return render(request, 'blog/post_new.html', context)
        else:
            form = PostForm(data=request.POST)
            if form.is_valid():
                new_post = form.save(commit=False)
                new_post.author = request.user
                new_post.publish()
                form.save_m2m()
                return redirect('blog:post_detail', slug=new_post.slug)

    else:
        return HttpResponseNotFound('<h1>Superuser Permission Required!</h1>')
示例#15
0
def post_edit(request, slug):
    if request.user.is_superuser:
        post = get_object_or_404(Post, slug=slug)
        if request.method != 'POST':
            form = PostForm(instance=post)
            context = {'form': form, 'post': post}
            return render(request, 'blog/post_edit.html', context)
        else:
            form = PostForm(instance=post, data=request.POST)
            if form.is_valid():
                edit_post = form.save(commit=False)
                edit_post.author = request.user
                edit_post.publish()
                form.save_m2m()
                return redirect('blog:post_detail', slug=edit_post.slug)
    else:
        return HttpResponseNotFound('<h1>Superuser Permission Required!</h1>')
示例#16
0
def post_update(request, pk):
    post = get_object_or_404(Post, pk=pk)

    # if request is POST, create a bound form (form with data)
    if request.method == "POST":
        f = PostForm(request.POST, instance=post)

        # check whether form is valid or not
        # if the form is valid, save the data to the database
        # and redirect the user back to the update post form

        # if form is invalid show form with errors again
        if f.is_valid():
            # if author is not selected and user is superuser, then assign post to author named admin
            if request.POST.get('author') == "" and request.user.is_superuser:
                updated_post = f.save(commit=False)
                author = Author.objects.get(user__username="******")
                updated_post.author = author
                updated_post.save()
                f.save_m2m()
            # if author is selected and user is superuser
            elif request.POST.get('author') and request.user.is_superuser:
                updated_post = f.save()
            # if user is not a superuser
            else:
                updated_post = f.save(commit=False)
                updated_post.author = Author.objects.get(
                    user__username=request.user.username)
                updated_post.save()
                f.save_m2m()

            messages.add_message(request, messages > INFO, 'Post updated')
            return redirect(reverse('post_update', args=[post.id]))

    # if request is GET show unbound form to the user
    else:
        f = PostForm(instance=post)

    return render(request, 'cadmin/post_update.html', {
        'form': f,
        'post': post
    })
示例#17
0
def post_add(request):

    # if request is POST, create a bound form (form with data)

    if request.method == "POST":
        f = PostForm(request.POST)

        # check whether form is valid
        # if valid, save data to database
        # redirect user back to add post form

        # if form is invalid show form with errors
        if f.is_valid():
            # if author is not selected and user is superuser, then assign the post to the author named admin
            if request.POST.get('author') == "" and request.user.is_superuser:
                new_post = f.save(commit=False)
                author = Author.objects.get(user__username='******')
                new_post.author = author
                new_post.save()
                f.save_m2m()

            # if author is selected and user is superuser
            elif request.POST.get('author') and request.user.is_superuser:
                new_post = f.save()

            # if user is not a superuser
            else:
                new_post = f.save(commit=False)
                new_post.author = Author.objects.get(
                    user__username=request.user.username)
                new_post.save()
                f.save_m2m()

            messages.add_message(request, messages.INFO, 'Post Added')
            return redirect('post_add')

    # if request is GET then show unbound form to user
    else:
        f = PostForm()
    return render(request, 'cadmin/post_add.html', {'form': f})
示例#18
0
def post_add(request):
    if request == 'POST':
        f = PostForm(request.POST)
        slug = slugify(request.POST['title'])
        if f.is_valid():
            r = f.save(commit=False)
            r.slug = slug
            l = len(Post.objects.filter(slug__startswith=slug))
            if l:
                slug = slugify(slug + ' ' + str(l))
                r.slug = slug
                r.save()
            else:
                r.save()
            f.save_m2m()
            messages.add_message(request, messages.INFO, 'Post added.')
            print()
            p = Post.objects.get(slug=slug)
            return redirect(reverse('blog:post_detail', args=[p.id, p.slug]))

    else:
        f = PostForm()
    return render(request, 'cadmin/post_add.html', {'form': f})
示例#19
0
def post_new(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        photo = None
        if request.FILES.get('image'):
            photo_form = PhotoForm(request.POST, request.FILES)
            if photo_form.is_valid():
                photo = photo_form.save()
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.photo = photo
            post.save()
            form.save_m2m()
            return redirect('blog:post_detail', pk=post.pk)
    else:
        form = PostForm()
        photo_form = PhotoForm()
    return render(request, 'blog/post_edit.html', {
        'form': form,
        'photo_form': photo_form
    })
示例#20
0
def post_update(request, pk):
    post = get_object_or_404(Post, pk=pk)

    if request.method == 'POST':
        f = PostForm(request.POST, instance=post)

        if f.is_valid():
            if request.POST.get('author') == '' and request.user.is_superuser:
                updated_post = f.save(commit=False)
                updated_post.author = Author.objects.get(
                    user__username='******')
                updated_post.save()
                f.save_m2m()

            elif request.POST.get('author') and request.user.is_superuser:
                f.save()

            else:
                updated_post = f.save(commit=False)
                updated_post.author = Author.objects.get(
                    user__username=request.user.username)
                updated_post.save()
                f.save_m2m()

            messages.add_message(request, messages.INFO, 'Post updated')
            return redirect('post_update', pk=pk)

        else:
            print(f.errors)

    #If request is GET, prepopulate with current post data
    else:
        f = PostForm(instance=post)
    return render(request, 'cadmin/post_update.html', {
        'form': f,
        'post': post
    })