def new_post(request, board_slug): board = Board.objects.get(slug=board_slug) if request.method == 'POST': post_form = PostForm(request.POST) attachment_form = AttachmentForm(request.POST, request.FILES) if post_form.is_valid() and attachment_form.is_valid( ) and request.user.is_authenticated: post = post_form.save(commit=False) post.board = board post.ip = get_ip(request) try: post.account = request.user except Post.DoesNotExist: post.account = None post.save() attachment = attachment_form.save(commit=False) attachment.post = post attachment.save() return redirect(board) else: post_form = PostForm() attachment_form = AttachmentForm() return render(request, 'new_post.html', { 'board': board, 'post_form': post_form, 'attachment_form': attachment_form })
def new_post(request, board_slug): board = Board.objects.get(slug=board_slug) if request.method == 'POST': post_form = PostForm(request.POST) attachment_form = AttachmentForm(request.POST, request.FILES) if post_form.is_valid() and attachment_form.is_valid() and request.user.is_authenticated: post = post_form.save(commit=False) post.board = board post.ip = get_ip(request) try: post.account = request.user except Post.DoesNotExist: post.account = None post.save() attachment = attachment_form.save(commit=False) attachment.post = post attachment.save() return redirect(board) else: post_form = PostForm() attachment_form = AttachmentForm() return render(request, 'new_post.html', {'board': board, 'post_form': post_form, 'attachment_form': attachment_form})
def edit_post(request, post_id): origin_post = Post.objects.get(id=post_id) edited_post = Post.objects.get(id=post_id) try: origin_attachment = Attachment.objects.get(post=origin_post) origin_attachment_name = origin_attachment.attachment.name except Attachment.DoesNotExist: origin_attachment = None origin_attachment_name = '' if request.method == 'POST': post_form = PostForm(request.POST, instance=edited_post) attachment_form = AttachmentForm(request.POST, request.FILES) if origin_post.title != request.POST['title'] or origin_post.content != request.POST['content'] or \ origin_attachment_name != request.FILES.get('attachment', ''): if post_form.is_valid() and attachment_form.is_valid(): edited_post.save() edited_post_history = EditedPostHistory.objects.create( post=origin_post, title=origin_post.title, content=origin_post.content, ip=origin_post.ip ) edited_post_history.save() # add attachment if not origin_attachment and request.FILES.get('attachment', '') != '': new_attachment = attachment_form.save(commit=False) new_attachment.post = edited_post new_attachment.save() # modify attachment elif origin_attachment and request.FILES.get('attachment', '') != '' \ and origin_attachment_name != request.FILES.get('attachment', ''): origin_attachment.post = None origin_attachment.editedPostHistory = edited_post_history origin_attachment.save() new_attachment = attachment_form.save(commit=False) new_attachment.post = edited_post new_attachment.save() # remove attachment elif request.POST.get('attachment-clear', '') == 'on': origin_attachment.post = None origin_attachment.editedPostHistory = edited_post_history origin_attachment.save() return redirect(edited_post) else: error_message = "변경 사항이 없습니다" return render(request, 'edit_post.html', { 'post': origin_post, 'post_form': post_form, 'attachment_form': attachment_form, 'error_alert': error_message }) else: post_form = PostForm(initial={'title': origin_post.title, 'content': origin_post.content}) if origin_attachment: attachment_form = AttachmentForm(initial={'attachment': origin_attachment.attachment}) else: attachment_form = AttachmentForm() return render(request, 'edit_post.html', {'post': origin_post, 'post_form': post_form, 'attachment_form': attachment_form})
def edit_post(request, post_id): origin_post = Post.objects.get(id=post_id) edited_post = Post.objects.get(id=post_id) try: origin_attachment = Attachment.objects.get(post=origin_post) origin_attachment_name = origin_attachment.attachment.name except Attachment.DoesNotExist: origin_attachment = None origin_attachment_name = '' if request.method == 'POST': post_form = PostForm(request.POST, instance=edited_post) attachment_form = AttachmentForm(request.POST, request.FILES) if origin_post.title != request.POST['title'] or origin_post.content != request.POST['content'] or \ origin_attachment_name != request.FILES.get('attachment', ''): if post_form.is_valid() and attachment_form.is_valid(): edited_post.save() edited_post_history = EditedPostHistory.objects.create( post=origin_post, title=origin_post.title, content=origin_post.content, ip=origin_post.ip) edited_post_history.save() # add attachment if not origin_attachment and request.FILES.get( 'attachment', '') != '': new_attachment = attachment_form.save(commit=False) new_attachment.post = edited_post new_attachment.save() # modify attachment elif origin_attachment and request.FILES.get('attachment', '') != '' \ and origin_attachment_name != request.FILES.get('attachment', ''): origin_attachment.post = None origin_attachment.editedPostHistory = edited_post_history origin_attachment.save() new_attachment = attachment_form.save(commit=False) new_attachment.post = edited_post new_attachment.save() # remove attachment elif request.POST.get('attachment-clear', '') == 'on': origin_attachment.post = None origin_attachment.editedPostHistory = edited_post_history origin_attachment.save() return redirect(edited_post) else: error_message = "변경 사항이 없습니다" return render( request, 'edit_post.html', { 'post': origin_post, 'post_form': post_form, 'attachment_form': attachment_form, 'error_alert': error_message }) else: post_form = PostForm(initial={ 'title': origin_post.title, 'content': origin_post.content }) if origin_attachment: attachment_form = AttachmentForm( initial={'attachment': origin_attachment.attachment}) else: attachment_form = AttachmentForm() return render( request, 'edit_post.html', { 'post': origin_post, 'post_form': post_form, 'attachment_form': attachment_form })