2010-05-21 37 views
1

正在到ValueError異常,這裏是full traceback,到底哪個是:ValueError異常,同時使用AutoSlugField和Django的標記

異常類型:ValueError異常在/管理/博客/職位/添加/
異常價值:無效基數爲10字面INT(): 'treef'

我使用AutoSlugFielddjango-command-extensions

我試圖讓django-tagging工作,這是我的models.py:

class Post(models.Model): 
    """Blog post model.""" 
    title = models.CharField('title', max_length=120) 
    slug = AutoSlugField('slug', unique=True, max_length=120, primary_key=True) 
    body = models.TextField('body') 
    published = models.DateTimeField('publish', default=datetime.now) 
    category = models.ForeignKey(Category) 
    tags = TagField() 

    class Meta: 
    verbose_name = ('post') 
    verbose_name_plural = ('posts') 
    ordering = ('-published',) 
    get_latest_by = 'published' 

    def __unicode__(self): 
    return self.title 

回答

0

我不認爲這是導致你的錯誤,但你在你的AutoSlugField聲明中缺少populate_from,和我不要認爲你需要unique=True

class Post(models.Model): 
"""Blog post model.""" 
title = models.CharField('title', max_length=120) 
slug = AutoSlugField('slug', unique=True, max_length=120, primary_key=True) 
    ... snip... 

我想你想:

slug = AutoSlugField(populate_from = 'title', max_length=120, primary_key=True) 

或者至少,這就是我在some of my code中使用AutoSlugField的方式。

我想你會得到你的錯誤,因爲django-tagging期望主鍵是整數,而你的主鍵將是一個字符串。你的primary_key=True聲明有充分的理由嗎?爲什麼不使用自動添加的id列的默認值?

如果你想使用你的URL蛞蝓(!這畢竟是蛞蝓點)來訪問自己的帖子,然後給你urls.py此項:

url(r'post/(?P<slug>.+)/$', single_post) 

你想要一個視圖像這樣:

def single_post(request, slug): 
    post = get_object_or_404(Post, slug = slug) 
    ... 

或者您可以使用generic views

+0

是的,這是我的URL模式,以達到一個單一的職位:url(r'post /(?P 。+)/ $',single_post),所以我喜歡它,如果如果如果slug是主鍵,有沒有辦法解決這個問題? – user346816 2010-05-21 09:40:18

+0

感謝您編輯我的問題。我會記得按照這個更容易閱讀格式:) – user346816 2010-05-21 09:44:21

+0

@ user346816 - 我已經編輯我的答案帳戶您的評論。這有幫助嗎? – 2010-05-21 10:30:40

0
slug = AutoSlugField('slug', unique=True, max_length=120, primary_key=True) 

您的主鍵不是int。