0

Pageインスタンスの保存とタグの分割保存を同時に行おうとしています。

これは私のコードです:

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'

私は何が間違っているのですか?

4

1 に答える 1

1

あなたはによって変更する必要がありobjますself

self.page_tags.add(tag)

モデルのsave()メソッドはデータを返さないためです。

于 2012-11-16T11:09:28.397 に答える