Форум сайта python.su
Всем привет.
Немного зашел в тупик. Смотрю в книге примеры, но как то у меня не выходит. Вот такая ошибка.
invalid literal for int() with base 10: 'Lix'
class Category(models.Model): title = models.CharField(max_length=40) def __unicode__(self): return self.title class Post(models.Model): creator = models.ManyToManyField(Author) category = models.ManyToManyField(Category) status = models.CharField(max_length=1, choices=STATUS_CHOICES) title = models.CharField(max_length=50) content = models.TextField() tags = models.CharField(max_length=30) date = models.DateTimeField() def __unicode__(self): return self.title
def get_categories_posts(request, category): get_list = Post.objects.filter(category=category) return HttpResponse(get_list)
url(r'^category/([a-zA-Z]+)$', get_categories_posts),
Отредактировано iga (Май 25, 2012 18:43:12)
Офлайн
category в функции get_categories_posts должен быть числом. url должен быть таким url(r'^category/(\d+)/$', get_categories_posts)
Если вы хотите выбарать category по title то в функции get_categories_posts
Post.objects.filter(category=Category.objects.get(title=category))
Отредактировано svas (Май 25, 2012 19:48:43)
Офлайн
svas
Post.objects.filter(category=Category.objects.get(title=category))
Post.objects.filter(category__title=category)
Офлайн
Заведите привычку - именуйте параметры в URL's.
r'^category/(?P<obj_des>\d+)$'
Офлайн
Спасибо за ответы. Дело в том, что category не должен быть числом, а выглядеть примерно так:
http://local_blog.com/category/Linux/
или
http://local_blog.com/category/About nginx/
Поэтому у меня получился в итоге такой шаблон для url.py
url(r'^category/([A-Za-z\s]+)/$', get_categories_posts),
Отредактировано iga (Май 26, 2012 12:06:57)
Офлайн
igaА с чем связаны подобные ограничения? У каждой записи в БД есть уникальный ID, логично и правильно передавать в URLe именно его
Спасибо за ответы. Дело в том, что category не должен быть числом, а выглядеть примерно так:
http://local_blog.com/category/Linux/
или
http://local_blog.com/category/About nginx/
Поэтому у меня получился в итоге такой шаблон для url.pyurl(r'^category/([A-Za-z\s]+)/$', get_categories_posts),
С view.py все ок, спасибо за исправления.
Офлайн
FishHook
А с чем связаны подобные ограничения? У каждой записи в БД есть уникальный ID, логично и правильно передавать в URLe именно его
Отредактировано iga (Май 26, 2012 14:11:24)
Офлайн
igaЕсли Вы посмотрите в строку адреса этого топика, то увидитеFishHook
А с чем связаны подобные ограничения? У каждой записи в БД есть уникальный ID, логично и правильно передавать в URLe именно его
Что бы был нормальный URL, а не к примеру …/category/24/
Если я вас правильно понял.
http://python.su/forum/topic/14668/
http://python.su/forum/topic/FishHook_otvechaen_iga_na_vopros_ob_durackih_urlah
Офлайн
FishHookА поисковик интересует.
Юзера вообще не должно интересовать, что там в URLe
Отредактировано reclosedev (Май 27, 2012 09:32:51)
Офлайн
Вот, вот именно из-за соображений индексации и склоняюсь в сторону длинных, но понятных УРЛ.
И тогда url можно сделать такой: http://stackoverflow.com/questions/837828/how-do-i-create-a-slug-in-django (кстати ссылка по теме и из нее видно о чем она, а поисковику так совсем хорошо от таких ссылок )
Отредактировано iga (Май 27, 2012 11:33:08)
Офлайн