def index(request, tag=None): if tag: tag_model = get_object_or_404(Tag, name=tag) urls = tag_model.url_set.all() else: urls = Url.objects.all() if request.method == "POST": form = UrlForm(request.POST) if form.is_valid(): url_data = form.cleaned_data['url'] title = form.cleaned_data['title'] tags = form.cleaned_data['tags'] try: url = Url(url=url_data, title=title) url.fill_title() url.save() url.add_tags_from_string(tags) if tag: url.add_tag(tag) except IntegrityError: pass return HttpResponseRedirect(request.path) else: form = UrlForm() return render_to_response("index.html", { 'urls': urls, 'form': form, })
def test_create_two_urls_with_same_tag(self): url1 = Url(url="http://example.com/1", title="My Title") url1.save() url1.add_tags_from_string("tag1") url2 = Url(url="http://example.com/2", title="My Title") url2.save() url2.add_tags_from_string("tag1") self.assertEquals(url1.tags.all()[0], url2.tags.all()[0])
def test_add_url_with_tags(self): url = Url(url="http://example.com", title="My Title") url.save() url.add_tags_from_string("tag1, tag2 ,tag3 , tag4,tag5,,,") tags = url.tags.order_by("name") self.assertEquals(len(tags), 5) self.assertEquals(tags[0].name, "tag1") self.assertEquals(tags[1].name, "tag2") self.assertEquals(tags[2].name, "tag3") self.assertEquals(tags[3].name, "tag4") self.assertEquals(tags[4].name, "tag5")