2012-11-16 25 views
0

我試圖保存一個Page實例並同時拆分它的標籤。Django Admin:如何同時保存頁面和拆分標籤?

這是我的代碼:

class Page(models.Model): 
    title = models.CharField(max_length=255, unique=True) 
    slug = models.SlugField(max_length=255, default='', blank=True) 
    content = tinymce_models.HTMLField(blank=True) 
    categories = models.ManyToManyField(PageCategory, related_name='page_categories', null=True, blank=True) 
    tags = models.CharField(max_length=512, default='') 

    def __unicode__(self): 
     return self.title 

    def save(self, *args, **kwargs): 
     #save first 
     self.slug = slugify(unidecode(self.title)) 
     obj = super(Page, self).save(*args, **kwargs) #save first 
     if obj.id and obj.tags: #split and assign tags to this page <--ERROR-- 
      tags = obj.tags.split(',') 
      for t in tags: 
       atag = t.strip(' ') 
       tag, saved = Tag.objects.get_or_create(name=atag) 
       obj.page_tags.add(tag) 

class Tag(models.Model): 
    name = models.CharField(max_length=255, unique=True) 
    pages = models.ManyToManyField(Page, related_name='page_tags') 

的問題是,我總是得到這樣的錯誤: 'NoneType' object has no attribute 'id'

我在做什麼錯?

+1

那麼'self.page_tags.add(tag)'而不是'obj ...'呢? – danihp

+0

它的工作原理,但爲什麼我的破碎? – xpanta

+0

作爲回答。 – danihp

回答