Django TypeError:没有主键值的模型实例是不可删除的

时间:2017-01-08 12:50:56

标签: python django

我的models.py如下:

class Article(models.Model):
    date = models.DateTimeField(null=True, blank=True)
    title = models.TextField(default=None, null=True, blank=True)
    content = models.TextField(default=None, null=True, blank=True)
    author = models.TextField(default=None, null=True, blank=True)
    url = models.CharField(max_length=255, default=None, null=True, blank=True, unique=True)


class Keyword(models.Model):
    word = models.CharField(max_length=80)

    def __str__(self):
        return self.word
    article = models.ForeignKey(Article, related_name='keywords_found', null=True, blank=True)

当我尝试保存这样的数据时遇到错误:

Article.objects.create(date=publish_date, title=article.title, content=article.text, author=article.authors, url=url, keywords_found=keywords_found)

此处,keywords_foundKeyword个对象的列表。

错误是:

TypeError: Model instances without primary key value are unhashable

我哪里错了?

Django版本:1.10

1 个答案:

答案 0 :(得分:2)

尝试以这种方式保存 -

    art = Article.objects.create(date=publish_date,
                                title=article.title, 
                                content=article.text, 
                                author=article.authors,
                                url=url)

    Keyword.objects.create(word=keywords, article=art)