Форум сайта python.su
Всем привет! Очень туплю или что-то не замечаю или просто не знаю как сделать правильно, но возникла такая проблема: “invalid literal for int() with base 10: ‘neydachka’”
views.py
from django.shortcuts import render_to_response from Blog.models import * def index(request): return render_to_response('Blog/index.html') def post(request, post_id): post = Post.objects.get(id=post_id) comment = Comment.objects.get(post=post) return render_to_response('Blog/post.html', {'post': post, 'comment': comment}) def blog(request): posts = Post.objects.all().order_by('-create_date') categories = Category.objects.all() return render_to_response('Blog/blog.html', {'posts': posts, 'categories': categories}) def category(request, cat): posts = Post.objects.get(category=cat) return render_to_response('Blog/category.html', {'posts': posts})
from django.conf.urls import patterns, include, url from Blog.views import * # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: url(r'^$', index), url(r'^post/([0-9]+)?/$', post), url(r'^blog/$', blog), url(r'^blog/category/([a-zA-Z0-9]+)?/$', category), # url(r'^VAKSA/', include('VAKSA.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: #url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), )
from django.db import models from django.contrib.auth.models import User # Create your models here. class Category(models.Model): name = models.CharField(max_length=50, verbose_name='Имя категории транслитом') title = models.CharField(max_length=50, verbose_name='Название категории') class Meta: verbose_name = 'категорию' verbose_name_plural = 'Категории' def __str__(self): return self.title class Tag(models.Model): name = models.CharField(max_length=50, verbose_name='Имя тега транслитом') title = models.CharField(max_length=50, verbose_name='Название тега') class Meta: verbose_name = 'тег' verbose_name_plural = 'Теги' def __str__(self): return self.title class Post(models.Model): user = models.ForeignKey(User, related_name='Автор') title = models.CharField(max_length=100, verbose_name='Название поста') description = models.TextField() create_date = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания') category = models.ForeignKey(Category, verbose_name='Категория') tag = models.ManyToManyField(Tag, verbose_name='Теги') class Meta: verbose_name='пост' verbose_name_plural='Посты' def __str__(self): return self.title class Comment(models.Model): content = models.TextField(verbose_name='Текст комментария') post = models.ForeignKey(Post, related_name='posts', verbose_name='Пост') user = models.ForeignKey(User, verbose_name='Автор') create_date = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания') class Meta: verbose_name='комментарий' verbose_name_plural='Комментарии' def __str__(self): return self.content class Profile(models.Model): user = models.ForeignKey(User, related_name='profile', verbose_name='Имя пользователя') class Meta: verbose_name='профиль' verbose_name_plural='Профиль' def __str__(self): return self.user.get_full_name()
url(r'^blog/category/([a-zA-Z0-9]+)?/$', category),
posts = Post.objects.get(category=cat)

Отредактировано Code_Bryant (Фев. 22, 2014 20:49:16)
Офлайн
19
def category(request, cat): print type(cat) posts = Post.objects.get(category__name=cat) return render_to_response('Blog/category.html', {'posts': posts})
Отредактировано PanovSergey (Фев. 22, 2014 20:56:25)
Офлайн
Спасибо за информацию, но теперь ругается “'Post' object is not iterable” на это
{% for post in posts %}
Отредактировано Code_Bryant (Фев. 22, 2014 21:09:52)
Офлайн
19
Code_BryantЭто просто print чтобы вы поняли что cat это строка, а не Category.
Спасибо за информацию. А для чего эта строка?
Офлайн
Спасибо. Сглупил. Я знал, что это строка, но пока удалил вы уже прочитали
Мне просто нужно что бы posts содержал в себе только посты с category__name='neydachka' грубо говоря.
Еще раз благодарочка. Буду изучать.
Отредактировано Code_Bryant (Фев. 22, 2014 21:17:03)
Офлайн
Ура! Спасибо, еще раз, огромное вам. Как говорят “дай человеку рыбу и он проживет один день, научи его ловить рыбу и он проживет всю жизнь”. Решил проблему. Плюсую в карму 
def category(request, cat): posts = Post.objects.all().filter(category__name=cat) return render_to_response('Blog/category.html', {'posts': posts})
Офлайн
19
Code_BryantУ вас правильный подход
Ура! Спасибо, еще раз, огромное вам. Как говорят “дай человеку рыбу и он проживет один день, научи его ловить рыбу и он проживет всю жизнь”. Решил проблему. Плюсую в карму
Офлайн