想象一下,它是用于将词汇翻译成另一种语言。我只处理有限数量的单词(~2000)。
语言1和语言2(将有不同的~2000个单词),每个可能有多个单词来自另一种语言,可能会或可能不会出现在另一种语言的~2000个单词列表中。
使用多对多的关系最初吸引我,但我无法透过薄雾看到什么效果最佳。
我的另一个想法就是为每个单词创建一个json转储。像......那样......
{1: {'Lang1': [word1, word2], 'Lang2': [word1, word2]}}
但是我不确定这是否太聪明,无法管理这样的事情,从管理部分做起来会很麻烦(因为我认为我会编辑一长串的json对象文本)而且它不利用太多。
也许还有另一种我没有想过的方法?
根据我的情况,您将如何定义此内容?
答案 0 :(得分:1)
class Language(models.Model):
name = models.CharField(max_length=100)
class Word(models.Model):
name = models.CharField(max_length=100)
language = models.ForeignKey(Language, related_name='language_words')
#...
class Translation(models.Model):
word = models.ForeignKey(Word, related_name='word_translations')
translation = models.CharField(max_length=100)
from_language = models.ForeignKey(Language, related_name='language_translations')
in_language = models.CharField(max_length=100)
# stage performances
english_language = Language(name='english')
english_language.save()
word = english_language.language_words.create(name='Flower')
german_translation = word.word_translations.create(translation='Blumen',
from_language=english_language,
in_language='German')
word # 'Flower'
german_translation # 'Blumen'
可能还不是最优的,我现在正在火车上,但这可能是一个有希望开始的好方法。
然后,如果您将这些模型注册到管理员,您可以轻松管理(添加/删除)翻译..