0

invalid literal for int() with base 10: 'social'/ category /social/でページを開こうとすると次のエラーが発生します。

def all_partners(request,category):
    p = Content.objects.filter(category_id=category)
    return render_to_response('reserve/templates/category.html', {'p':p},
        context_instance=RequestContext(request))


class ContentCategory(models.Model):
    content_category = models.CharField('User-friendly name', max_length =  200)
    def __unicode__(self):
        return self.content_category

class Content(models.Model):
    category = models.ForeignKey(ContentCategory)
    external = models.CharField('User-friendly name', max_length =  200, null=True, blank=True)
    host = models.CharField('Video host', max_length = 200, null=True, blank=True)
    slug = models.CharField('slug', max_length = 200, null=True, blank=True)
    def __unicode__(self):
        return self.slug

url(r'^category/(?P<category>[-\w]+)/$', 'all_partners'),

これを修正する方法について何かアイデアはありますか?"p = Content..."エラーはラインにあると思います。

4

1 に答える 1

0

ビュー内でcategoryは、整数、または。のようなintにキャストできる文字列である必要がありますint('5')。カテゴリを整数に制限しないURLに移動する必要があります。

foosite.com/category/social/

したがって、URLの最後の部分がcategoryパラメーターにマップされている場合、ビュー内、クエリ内でsocial、整数にキャストしようとします。これにより、エラーが発生します。

これを解決するには、URLパターンを再ストリング化して数字のみを許可するか、クエリの実行方法を変更する必要があります。

# urls.py
url(r'^category/(?P<category>\d+)/$', 'all_partners'),

また

def all_partners(request,category):
    p = Content.objects.filter(category__content_category=category)
    return render_to_response('reserve/templates/category.html', {'p':p},
        context_instance=RequestContext(request))

次に、IDではなく名前でカテゴリを検索します。

于 2012-10-11T03:25:46.823 に答える