Beispiel #1
0
def write(request, slug, id):
    initial_data = {}
    categories = get_categories_for_user(request.user, 'forum.write_post')
    action = u"글 쓰기"
    if slug != None:
        category = get_object_or_404(Category, slug=slug)
        initial_data["category"] = category.id
    if id != None:
        action = u"글 편집하기"
        post = get_object_or_404(Post, id=id)
        if not request.user.is_superuser and request.user != post.user:
            return HttpResponseForbidden("Operation is forbidden.")
        category = post.category
        categories = categories | Category.objects.filter(id=category.id) # nah
        form = WriteForm(categories, data=request.POST or None, instance=post)
    else:
        if not categories.filter(id=category.id).exists():
            return HttpResponseForbidden("Operation is forbidden.")
        form = WriteForm(categories, data=request.POST or None, initial=initial_data)

    if request.method == "POST" and form.is_valid():
        post = form.save(commit=False)
        if id == None: post.user = request.user
        post.save()
        return redirect(reverse("forum-read", kwargs={"id": post.id}))
    return render(request, "write.html", {"form": form, "action": action,
                                          "category": category, "categories": categories})
Beispiel #2
0
def write(request, slug, id):
    initial_data = {}
    categories = get_categories_for_user(request.user, 'forum.write_post')
    action = u"글 쓰기"
    if slug != None:
        category = get_object_or_404(Category, slug=slug)
        initial_data["category"] = category.id
    if id != None:
        action = u"글 편집하기"
        post = get_object_or_404(Post, id=id)
        if not request.user.is_superuser and request.user != post.user:
            return HttpResponseForbidden("Operation is forbidden.")
        category = post.category
        categories = categories | Category.objects.filter(
            id=category.id)  # nah
        form = WriteForm(categories, data=request.POST or None, instance=post)
    else:
        if not categories.filter(id=category.id).exists():
            return HttpResponseForbidden("Operation is forbidden.")
        form = WriteForm(categories,
                         data=request.POST or None,
                         initial=initial_data)

    if request.method == "POST" and form.is_valid():
        post = form.save(commit=False)
        if id == None: post.user = request.user
        post.save()
        return redirect(reverse("forum-read", kwargs={"id": post.id}))
    return render(
        request, "write.html", {
            "form": form,
            "action": action,
            "category": category,
            "categories": categories
        })
def add_categories(request):
    return {
        "forum_categories": get_categories_for_user(request.user, 'read_post')
    }
Beispiel #4
0
def add_categories(request):
    return {"forum_categories": get_categories_for_user(request.user, 'read_post')}