def heartbeats(request): if not request.user.is_authenticated: return HttpResponseRedirect('/login') if request.method == 'POST': is_search = False if request.POST.has_key('search'): is_search = True words = request.POST['search'] search_title = BlogPost.objects.filter(title__contains=words) search_body = BlogPost.objects.filter(body__contains=words) posts = search_body | search_title posts = list(posts) relation_people = [] for post in posts: b = User.objects.get(username=post.author) a = Profile.objects.get(user=b) relation_people.extend([a]) posts = zip(posts, relation_people) return render(request, 'heartbeats.html', { 'posts': posts, 'is_search': is_search, 'word': words }) if request.POST.has_key('body'): bp = BlogPost() bp.title = request.POST['title'] bp.body = request.POST['body'] bp.author = request.user.username bp.timestamp = datetime.now() bp.save() posts = BlogPost.objects.all() posts = list(posts) relation_people = [] for post in posts: b = User.objects.get(username=post.author) a = Profile.objects.get(user=b) relation_people.extend([a]) posts = zip(posts, relation_people) return render( request, 'heartbeats.html', { 'posts': posts, 'is_search': is_search, 'relation_people': relation_people }) else: posts = BlogPost.objects.all() posts = list(posts) relation_people = [] for post in posts: b = User.objects.get(username=post.author) a = Profile.objects.get(user=b) relation_people.extend([a]) posts = zip(posts, relation_people) return render(request, 'heartbeats.html', { 'posts': posts, 'relation_people': relation_people })
def update_blog_post(title, content, is_published, blog_post_id=None): if not blog_post_id: p = BlogPost() else: p = get_blog_post(blog_post_id) p.title = title p.content = content p.is_published = bool(is_published) p.put() return p
def test_unique_slug(self): """ two post with identical titles should different slugs """ repeated_title = self.post.title post2 = BlogPost() post2.title = repeated_title post2.writer = self.user2 post2.text = "another random text" post2.save() self.assertNotEqual(self.post.slug, post2.slug)
def test_save_and_retrieve_blog_posts(self): self.assertEqual(BlogPost.objects.all().count(), 0) blog_post = BlogPost() blog_post.title = "A post" blog_post.date = datetime.datetime(1939, 9, 1, 5, 0, 0) blog_post.body = "Blah blah blah" blog_post.visible = False blog_post.save() self.assertEqual(BlogPost.objects.all().count(), 1) retrieved_post = BlogPost.objects.first() self.assertEqual(retrieved_post, blog_post)
def test_save_and_retrieve_blog_posts(self): self.assertEqual(BlogPost.objects.all().count(), 0) blog_post = BlogPost() blog_post.title = "A post" blog_post.date = datetime.datetime(1939, 9, 1, 5, 0, 0) blog_post.body = "Blah blah blah" blog_post.visible = False blog_post.save() self.assertEqual(BlogPost.objects.all().count(), 1) retrieved_post = BlogPost.objects.first() self.assertEqual(retrieved_post, blog_post)
def blog_publish(request): """ 保存博客 :param request: :return: """ if request.method == "POST": data = request.POST content = data.get("content") # 保存文章数据到数据库 id = data.get('id', 0) if id != 0: blog = BlogPost.objects.filter(author_id=request.user.id, id=id) else: blog = BlogPost.objects.filter(author_id=request.user.id, statu='正在编辑') if blog.exists(): blog = blog.first() blog.tag.clear() else: blog = BlogPost() blog.content = content blog.statu = data.get("statu") blog.author = User.objects.get(id=request.user.id) blog.category_id = data.get("category") blog.blog_type = data.get("type") blog.title = data.get('title') tag_list = [] blog.modify_time = now() blog.save() if data.get("tag_add"): tag_add = blog_tag(data.get("tag_add")) # print(data.get("tag_add")) tag_list = tag_add if data.get('tag'): for tag in data.get('tag').split(','): tag_list.append(tag) # print(tag_list) if len(tag_list) > 0: tag_list = list(set(tag_list)) if '' in tag_list: tag_list.remove('') blog.tag.add(*tag_list) context = {"flag": True, "message": "博文发布成功!", 'id': blog.id} return JsonResponse(context) else: context = {"categorys": blog_category(), 'tags': blog_tag()} return JsonResponse(context)
def test_create_post(self): user = User.objects.get(username='******') post = BlogPost(user=user) post.title = "My test post" post.content = "This is a test post" post.save() all_posts = BlogPost.objects.all() self.assertEquals(len(all_posts), 1) only_post = all_posts[0] self.assertEquals(only_post, post) self.assertEquals(only_post.title, "My test post")
def publish(request, id): context = {} user = request.user if not user.is_authenticated: return redirect("login") notes = get_object_or_404(Notes, pk=id) if notes.author != user: return HttpResponse("You are not the author of that post.") blog_post = BlogPost() blog_post.title = notes.title blog_post.body = notes.body blog_post.author = request.user blog_post.save() return redirect("/")
def archive(request): posts_obj = BlogPost() posts_obj.title = "HTML leture" posts_obj.content = "format of HTML" posts_obj.timestamp = datetime.now() posts_obj.save() posts = BlogPost.objects.all().order_by("-timestamp") # 1st way # t2 = loader.get_template('blog/archive.html') # t = t2.render({'posts': posts}) # return HttpResponse(t) # 2nd way return render_to_response('blog/archive.html', {'posts': posts})
def load_education_blog_posts(): """ Transferring blog posts from EdCentral CSV for Education Policy Program """ education_blog_mapping = edcentral_blog_mapping() for post in education_blog_mapping: if post['title'] == 'title': pass else: print(post['title']) post_parent = get_program('5') parent_blog_homepage = get_content_homepage( post_parent, ProgramBlogPostsPage, 'EdCentral', ) ed_blog_post_slug = post['slug'] print(ed_blog_post_slug) new_blog_post = BlogPost.objects.filter( slug=ed_blog_post_slug).first() if not new_blog_post and ed_blog_post_slug: new_blog_post = BlogPost( search_description='', seo_title='', depth=5, show_in_menus=False, slug=ed_blog_post_slug, title=post['title'], date=post['real_date'], body=json.dumps([{ 'type': 'paragraph', 'value': post['content'] }]), story_excerpt=get_summary(post['excerpt']), ) parent_blog_homepage.add_child(instance=new_blog_post) new_blog_post.save() print( "-------------------ADDED NEW EDCENTRAL POST----------------------" ) get_education_authors(new_blog_post, post['author']) connect_subprograms_to_post( new_blog_post, clean_subprograms_for_ed(post['categories'])) elif new_blog_post and ed_blog_post_slug: new_blog_post.search_description = '' new_blog_post.seo_title = '' new_blog_post.depth = 5 new_blog_post.show_in_menus = False new_blog_post.slug = ed_blog_post_slug new_blog_post.title = post['title'] new_blog_post.date = post['real_date'] new_blog_post.body = json.dumps([{ 'type': 'paragraph', 'value': post['content'] }]) new_blog_post.story_excerpt = get_summary(post['excerpt']) get_education_authors(new_blog_post, post['author']) connect_subprograms_to_post( new_blog_post, clean_subprograms_for_ed(post['categories'])) print( "-------------------UPDATED EXISTING EDCENTRAL POST----------------------" ) new_blog_post.save()