def comment(request, group_id, item_id): item = get_object_or_404(Item, pk=item_id) group = get_object_or_404(WishlistGroup, pk=group_id) group_item = GroupItem.objects.get(item=item, group=group) print "adding a coment to %s" % item print "posted values %s" % request.POST form = CommentForm(request.POST) if not form.is_valid(): print "comment form is invalid" return render(request, "wishlist_app/item/item.html", { "item": item, "comments": item.comments.order_by('created'), "comment_form": form }) print "saving comment" c = form.save(commit=False) c.commenter = request.user # TODO refactor this to be more DRY if c.hide_from_wisher and c.commenter == item.wisher: form.add_error("hide_from_wisher", ValidationError("Can't hide comments from yourself")) return render(request, "wishlist_app/item/item.html", { "item": item, "comments": group_item.comments.order_by('created'), "comment_form": form }) c.save() ic = ItemComment(group_item=group_item, comment=c) ic.save() print "saved comment %s" % c return redirect("group_item_read", group.id, item.id)
def edit_comment(request, comment_id): print "Request to edit comment: %s" % comment_id c = get_object_or_404(Comment, pk=comment_id) print "Got Comment %s" % c ic = get_object_or_404(ItemComment, comment=c) print "Got item-comment" item = ic.group_item.item print "Got item %s" % item if not request.user == c.commenter: raise PermissionDenied("Can't edit a comment you didn't write") if request.POST: print "post request to edit comment, bound to %s" % c form = CommentForm(request.POST, instance=c) print "bound form: %s" % form if not form.is_valid(): print "comment form is invalid" return render(request, "wishlist_app/item/item.html", { "item": item, "comments": item.comments.order_by('created'), "comment_form": form }) else: print "comment form valid" c = form.save() print "comment update saved: %s" % c return redirect("group_item_read", ic.group_item.group.id, item.id) else: print "request for a comment form bound to %s" % c form = CommentForm(instance=c) print "Form is type: %s" % type(form) print "Item is type: %s" % type(item) return render(request, "wishlist_app/comment/update_comment_form.html", { "item": item, "comment": c, "comment_form": form })