def test_article_renders_template_and_slug(self): c = Client() user1 = User.objects.create_user(username="******", email="*****@*****.**", password="******") article1 = Article() article1.title = "nicetitle" article1.content = "nicecontent" article1.status = 'P' article1.slug = 'nice-title' article1.create_user = user1 article1.create_user.id = user1.id article1.save() # user1 logs in self.client.login(username="******", password="******") response = self.client.get( reverse('article', kwargs={'slug': 'nice-title'})) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'articles/article.html') # check we've passed the right article into the context self.assertEquals(response.context['article'], article1) # check the article's title appears on the page self.assertIn(article1.title, response.content)
def handle(self, *args, **options): print feed for entry in range(len(feed.entries)): # print entry # print feed.entries[entry] #RSSの内容を一件づつ処理する title = feed.entries[entry].title link = feed.entries[entry].link # value = feed.entries[entry].value #更新日を文字列として取得 # published_string = feed.entries[entry].published #更新日をdatetimeとして取得 # tmp = feed.entries[entry].published_parsed # published_datetime = datetime.fromtimestamp(mktime(tmp)) #表示 key = hashlib.md5(title.encode('utf_8')).hexdigest() result_article = Article.objects.filter(insert_key=key) if not len(result_article): article = Article() article.create_user = User.objects.get(id=1) article.title = title article.content = title article.status = u'P' article.insert_key = key article.save()
def test_article_renders_template_and_slug(self): c = Client() user1 = User.objects.create_user(username="******", email="*****@*****.**", password="******") article1 = Article() article1.title = "nicetitle" article1.content = "nicecontent" article1.status = 'P' article1.slug = 'nice-title' article1.create_user = user1 article1.create_user.id = user1.id article1.save() # user1 logs in self.client.login(username="******", password="******") response = self.client.get(reverse('article', kwargs={'slug': 'nice-title'})) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'articles/article.html') # check we've passed the right article into the context self.assertEquals(response.context['article'], article1) # check the article's title appears on the page self.assertIn(article1.title, response.content)
def edit(request, id): tags = '' if id: article = get_object_or_404(Article, pk=id) for tag in article.get_tags(): tags = u'{0} {1}'.format(tags, tag.tag) tags = tags.strip() else: article = Article(create_user=request.user) if article.create_user.id != request.user.id: return redirect('home') if request.POST: old_state = {'title': article.title, 'content': article.content} form = ArticleForm(request.POST, instance=article) if form.is_valid(): q_memento = ArticleMemento() q_memento.state = json.dumps(old_state) q_memento.caretaker = article.caretaker q_memento.save() form.save() return redirect('/articles/') else: form = ArticleForm(instance=article, initial={'tags': tags}) return render(request, 'articles/edit.html', {'form': form})
def edit(request, id): # 编辑 tags = '' if id: # 如果id存在的话,说明是update article = get_object_or_404(Article, pk=id) for tag in article.get_tags(): tags = u'{0} {1}'.format(tags, tag.tag) tags = tags.strip() else: # 否则的话,是一个新文章 article = Article(create_user=request.user) if article.create_user.id != request.user.id: # 如果修改者不是创建者的话,那么redirect到home return redirect('home') if request.POST: # 如果是post的话,那么获取表单数据,保存 form = ArticleForm(request.POST, instance=article) if form.is_valid(): # 这个方法根据表单绑定的数据创建并保存数据库对象 form.save() return redirect('/articles/') else: # 否则的话,创建一个新的form,内容填充找到的内容, form = ArticleForm(instance=article, initial={'tags': tags}) return render(request, 'articles/edit.html', {'form': form})
def test_validate_article_edition(self): c = Client() user1 = User.objects.create_user(username="******", email="*****@*****.**", password="******") user2 = User.objects.create_user(username="******", email="*****@*****.**", password="******") article = Article() article.title = "nicetitle" article.content = "nicecontent" article.create_user = user2 article.create_user.id = user2.id article.save() self.client.login(username="******", password="******") response = self.client.get(reverse('edit_article', kwargs={'id': '1'})) self.assertEqual(response.status_code, 302) response = self.client.post(reverse('edit_article', kwargs={'id': '1'})) self.assertEqual(response.status_code, 302) self.client.login(username="******", password="******") response = self.client.get(reverse('edit_article', kwargs={'id': '1'}), user=user2) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('edit_article', kwargs={'id': '1'})) self.assertEqual(response.status_code, 200)
def write(request): if request.method == 'POST': form = ArticleForm(request.POST) if form.is_valid(): article = Article() article.create_user = request.user article.title = form.cleaned_data.get('title') article.content = form.cleaned_data.get('content') status = form.cleaned_data.get('status') if status in [Article.PUBLISHED, Article.DRAFT]: article.status = form.cleaned_data.get('status') article.save() tags = form.cleaned_data.get('tags') article.create_tags(tags) return redirect('/articles/') else: form = ArticleForm() return render(request, 'articles/write.html', {'form': form})
class ArticlesList(ListView): model = Article queryset = Article.get_published() paginate_by = 10 context_object_name = 'articles' def get_context_data(self, *args, **kwargs): context = super(ArticlesList, self).get_context_data(*args, **kwargs) context.update({'popular_tags': Tag.get_popular_tags()}) return context
def post(self, request): form = ArticleForm(request.POST, request.FILES) a = request.POST.get('action').lower() if form.is_valid(): if a == 'publish': status = Article.PUBLISHED elif a == 'draft': status = Article.DRAFT article = Article( title = form.cleaned_data.get('title'), content = form.cleaned_data.get('content'), create_user = request.user, status = status ) article.save() tags = form.cleaned_data.get('tags') article.create_tags(tags) return redirect(self.success_url) else: return super(ArticleCreateView, self).form_invalid(form)
def write(request): if request.method == "POST": form = ArticleForm(request.POST) if form.is_valid(): article = Article() article.create_user = request.user article.title = form.cleaned_data.get("title") article.content = form.cleaned_data.get("content") status = form.cleaned_data.get("status") if status in [Article.PUBLISHED, Article.DRAFT]: article.status = form.cleaned_data.get("status") article.save() tags = form.cleaned_data.get("tags") article.create_tags(tags) return redirect("/articles/") else: form = ArticleForm() return render(request, "articles/write.html", {"form": form})
def _articles(request, articles): paginator = Paginator(articles, 10) page = request.GET.get('page') try: articles = paginator.page(page) except PageNotAnInteger: articles = paginator.page(1) except EmptyPage: # pragma: no cover articles = paginator.page(paginator.num_pages) popular_tags = Article.get_counted_tags() return render(request, 'articles/articles.html', { 'articles': articles, 'popular_tags': popular_tags })
def edit(request, id): tags = '' if id: article = get_object_or_404(Article, pk=id) for tag in article.get_tags(): tags = u'{0} {1}'.format(tags, tag.tag) tags = tags.strip() else: article = Article(create_user=request.user) if request.POST: form = ArticleForm(request.POST, instance=article) if form.is_valid(): form.save() return redirect('/articles/') else: form = ArticleForm(instance=article, initial={'tags': tags}) return render(request, 'articles/edit.html', {'form': form})
def edit(request, id): if id: article = get_object_or_404(Article, pk=id) else: article = Article(create_user=request.user) if article.create_user.id != request.user.id: return redirect('home') if request.POST: form = ArticleForm(request.POST, instance=article) if form.is_valid(): form.save() return redirect('/articles/') else: form = ArticleForm(instance=article) return render(request, 'articles/edit.html', {'form': form})
def post(self, request): form = ArticleForm(request.POST, request.FILES) a = request.POST.get('action').lower() if form.is_valid(): if a == 'publish': status = Article.PUBLISHED elif a == 'draft': status = Article.DRAFT article = Article(title=form.cleaned_data.get('title'), content=form.cleaned_data.get('content'), create_user=request.user, status=status) article.save() tags = form.cleaned_data.get('tags') article.create_tags(tags) return redirect(self.success_url) else: return super(ArticleCreateView, self).form_invalid(form)
def articles(request): all_articles = Article.get_published() return _articles(request, all_articles)
def test_only_published_articles_are_shown(self): c = Client() user1 = User.objects.create_user(username="******", email="*****@*****.**", password="******") article1 = Article() article1.title = "nicetitle" article1.content = "nicecontent" article1.status = "P" # Published article1.create_user = user1 article1.create_user.id = user1.id article1.save() article2 = Article() article2.title = "secondnicetitle" article2.content = "secondnicecontent" article2.status = "D" # Draft article2.create_user = user1 article2.create_user.id = user1.id article2.save() # user1 logs in self.client.login(username="******", password="******") response = self.client.get(reverse('articles')) self.assertEqual(response.status_code, 200) self.assertTrue('articles' in response.context) # make sure that the only (published) Article we have in our database is in that list self.assertEqual([article.pk for article in response.context['articles']], [1]) article_1 = response.context['articles'][0] self.assertEqual(article_1.title, 'nicetitle')
def test_only_published_articles_are_shown(self): c = Client() user1 = User.objects.create_user(username="******", email="*****@*****.**", password="******") article1 = Article() article1.title = "nicetitle" article1.content = "nicecontent" article1.status = "P" # Published article1.create_user = user1 article1.create_user.id = user1.id article1.save() article2 = Article() article2.title = "secondnicetitle" article2.content = "secondnicecontent" article2.status = "D" # Draft article2.create_user = user1 article2.create_user.id = user1.id article2.save() # user1 logs in self.client.login(username="******", password="******") response = self.client.get(reverse('articles')) self.assertEqual(response.status_code, 200) self.assertTrue('articles' in response.context) # make sure that the only (published) Article we have in our database is in that list self.assertEqual( [article.pk for article in response.context['articles']], [1]) article_1 = response.context['articles'][0] self.assertEqual(article_1.title, 'nicetitle')
def articles(request): # 显示所有的发布文章 all_articles = Article.get_published() return _articles(request, all_articles)
def handle(self, *args, **options): # result_account_list = InstagramAccount.objects.all() # for a in result_account_list: for n in user_name_list: # print username_to_id(n) user_id = username_to_id(n) if user_id: recent_media, next_ = api.user_recent_media(user_id=user_id, count=3) for media in recent_media: temp_title = "title" tags = "tags" key = hashlib.md5(media.images['standard_resolution'].url).hexdigest() result_article = Article.objects.filter(insert_key=key) # if not len(result_article): if True: if hasattr(media.caption, 'text'):temp_title = media.caption.text if hasattr(media, 'tags'): for t in media.tags: tags = t.name article = Article() article.create_user = User.objects.get(id=1) article.title = temp_title article.content = "![](" + media.images['standard_resolution'].url + ")" # article.content = article.content + """ # . # """ # article.content = article.content+temp_title print media.user.id print media.user.profile_picture print media.user.username article.instagram_user_id = media.user.id article.instagram_user_name = media.user.username article.instagram_profile_url = media.user.profile_picture article.status = u'P' article.insert_key = key article.save() article.create_tags(tags)
def handle(self, *args, **options): result_account_list = InstagramAccount.objects.all() for a in result_account_list: try: recent_media, next_ = api.user_recent_media(user_id=a.user_id, count=1) for media in recent_media: temp_title = "title" tags = "" key = hashlib.md5(media.images['standard_resolution'].url).hexdigest() result_article = Article.objects.filter(insert_key=key) if not len(result_article): if hasattr(media.caption, 'text'):temp_title = media.caption.text if hasattr(media, 'tags'): for t in media.tags: tags = t.name article = Article() article.create_user = User.objects.get(id=1) article.title = temp_title article.content = "![](" + media.images['standard_resolution'].url + ")" article.instagram_user_id = media.user.id article.instagram_user_name = media.user.username article.instagram_profile_url = media.user.profile_picture article.update_date = media.caption.created_at article.status = u'P' article.insert_key = key article.save() article.create_tags(tags) except: print "error"
def articles(request): tag = request.session.get("TRIBE_TAG") all_articles = Article.get_published(tag) return _articles(request, all_articles)