我在数据库上有很多网站,我想跟踪每个网站中使用的顶级单词,我不想每次都计算这个。 (一次估计足够好)
我能想到如何做到这一点的唯一方法就是拥有一个单词和计数模型。请告诉我这样做的更好方法是什么?
class Word(models.model):
name=
count=
class Url(models.model):
address=
words_used=models.ManyToManyField(Word)
我的模型存在的问题是,对于同一个单词的不同计数,我需要多行。
答案 0 :(得分:0)
您需要通过明确定义,https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.through
将计数添加到直通表中class Word(models.Model):
name=
class Url(models.Model):
address=
words=models.ManyToManyField(Word, through='WordCount', through_fields=('word','url'))
class WordCount(models.Models):
word=models.ForeignKey(Word)
url=models.ForeignKey(Url)
count=
请记住,您可能希望word.name和url.address是唯一的,并且不区分大小写,因此在保存/比较之前将它们小写:)