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