保存实例后如何更新模型字段?

时间:2021-01-11 11:37:38

标签: django

我有一个 Django 模型 Article,在保存了一个实例后,我想找到那篇文章中五个最常用的词(seedwords)并将文章保存在不同的模型 Group 中,基于种子词。

问题是我希望 Group 依赖于 Article 的实例,即每次保存 Article 时,我希望 Django 自动检查所有现有组并如果没有合适的,创建一个新的 Group

class Article(models.Model):
    seedword_group = models.ForeignKey("Group", null=True, blank=True)

    def update_seedword_group(self):
        objects = News.objects.all()
        seedword_group = *some_other_function*
        return seedword_group

    def save(self, *args, **kwargs):
         self.update_seedword_group()
         super().save(*args, **kwargs)

class Group(models.Model):
    *some_fields*

我尝试过使用信号但无法解决,我开始认为我可能误解了一些基本的东西。

所以,转述:

  • 我想保存模型 A 的一个实例。
  • 保存后,我想通过外键创建或更新依赖于 A 的现有模型 B。

1 个答案:

答案 0 :(得分:1)

老实说,我无法理解您的需求背后的基本原理,但我想下面的代码可能会有所帮助:

def update_seedword_group(content):
    objects = News.objects.all()

    """
        process word count algorithm and get related group
        or create a new group
    """
    if found:
        seedword_group = "*some_other_function*"
    else:
        seedword_group = Group(name="newGroup")
        seedword_group.save()
    return seedword_group

class Group(models.Model):
    *some_fields*

class Article(models.Model):
    seedword_group = models.ForeignKey("Group", null=True, blank=True)
    content = models.TextField()    

    def save(self):
        self.group = update_seedword_group(self.content)
        super().save()
相关问题