我有一个 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*
我尝试过使用信号但无法解决,我开始认为我可能误解了一些基本的东西。
所以,转述:
答案 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()