0
我正在为翻译人员开发网络。我被困在设计数据结构上。所以有一个模型翻译,语言和水平。价格取决于语言和水平(标准水平乘以价格1倍,专业1.5倍等)如何在Django模型中存储模型元组的字段?
每个翻译可以翻译不同级别(技能)的多种语言。
我无法弄清楚如何为此设计模型。我的想法是存储每个翻译的元组的一些领域(语言,级别),因此模型转换器将是:(FieldOfModelTuples
不存在,当然)
class TranslatorProfile(models.Model):
user = models.OneToOneField(User, related_name='userprofile')
date_of_birth = models.DateField(null=True,blank=True)
telephone = models.CharField(max_length=40,null=True,blank=True)
IBAN = models.CharField(max_length=40,null=True,blank=True)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
# HERE IS THE PROBLEM
languages = models.FieldOfModelTuples(Language,Level)
class Level(models.Model):
LEVEL_NAMES = (
('standard', 'Standard'),
('professional', 'Professional'),
#etc.
)
name = models.CharField(max_length=40, choices=LEVEL_NAMES)
price_multiplier = models.FloatField()
class Language(models.Model):
shortcut = models.CharField(max_length=40)
name = models.CharField(max_length=40)
def __str__(self):
return self.name
我将不胜感激任何建议如何解决这个问题。也许有一个更简单的方法来做到这一点。
事实上,这是行不通的。它说'TranslatorLanguage'没有定义。这是因为'TranslatorProfile'是在'TranslatorLanguage'之前定义的,但它试图调用它。当我使用这两个模型时,会出现相同但相反的问题。如果在'TranslatorProfile'之前有'TranslatorLanguage',它表示'TranslatorProfile'没有被定义... –
那么,作为一般规则,您应该将关系字段的模型作为字符串''app_name.model_name ''以避免这些问题。 – schwobaseggl