Найти - Пользователи
Полная версия: Ошибка с фильтром
Начало » Django » Ошибка с фильтром
1
iga
Всем привет.

Немного зашел в тупик. Смотрю в книге примеры, но как то у меня не выходит. Вот такая ошибка.
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),
svas
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))
Chern
svas
Post.objects.filter(category=Category.objects.get(title=category))

Что же вы человеку глупости показываете…

Post.objects.filter(category__title=category)
vvpoloskin
Заведите привычку - именуйте параметры в URL's.

r'^category/(?P<obj_des>\d+)$'
iga
Спасибо за ответы. Дело в том, что 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),

С view.py все ок, спасибо за исправления.
FishHook
iga
Спасибо за ответы. Дело в том, что 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),

С view.py все ок, спасибо за исправления.
А с чем связаны подобные ограничения? У каждой записи в БД есть уникальный ID, логично и правильно передавать в URLe именно его
iga
FishHook
А с чем связаны подобные ограничения? У каждой записи в БД есть уникальный ID, логично и правильно передавать в URLe именно его

Что бы был нормальный URL, а не к примеру …/category/24/

Если я вас правильно понял.
FishHook
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
Юзера вообще не должно интересовать, что там в URLe, а Вы избавите себя от геморройных решений, если не будете изобретать велосипедов. Зашивать ID в адресе это нормальная и общепринятая практика, в отличие от
reclosedev
FishHook
Юзера вообще не должно интересовать, что там в URLe
А поисковик интересует.
В Django есть Slugfield
И тогда url можно сделать такой: http://stackoverflow.com/questions/837828/how-do-i-create-a-slug-in-django (кстати ссылка по теме и из нее видно о чем она, а поисковику так совсем хорошо от таких ссылок )
Т.е. выбор будет по id (837828), а slug для поисковика. Хотя можно без id обойтись и выбирать по slug.
iga

Вот, вот именно из-за соображений индексации и склоняюсь в сторону длинных, но понятных УРЛ.

И тогда url можно сделать такой: http://stackoverflow.com/questions/837828/how-do-i-create-a-slug-in-django (кстати ссылка по теме и из нее видно о чем она, а поисковику так совсем хорошо от таких ссылок )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB