私は翻訳者のためのウェブ上で働いています。私はデータの構造を設計することに固執しています。そのため、Translator、Language、Levelというモデルがあります。価格は各翻訳は異なるレベル(スキル)と、複数の言語を翻訳することができモデルのタプルのフィールドをDjangoモデルに保存する方法は?
(標準レベルは、価格の1倍、1.5倍プロフェッショナルなどを乗算)言語とレベルに依存します。
私は、この目的のためにモデルを設計する方法を見つけ出すことはできません。私の考えでは、各翻訳のためのタプル(言語、レベル)のいくつかのフィールドを格納することであるので、モデルトランスレータは次のようになります。私はこの問題を解決するためにどのように何かアドバイスをいただければ幸いです
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
(FieldOfModelTuples
はもちろん存在しません。) 。たぶん、これを行う簡単な方法があります。
実際には、これは機能しません。 「TranslatorLanguage」は定義されていないと言われています。 'TranslatorProfile'は 'TranslatorLanguage'の前に定義されていますが、それを呼び出そうとしているためです。そして、私はこの2つのモデルを交換するとき、同じだが反対の問題。 「TranslatorLanguageは」「TranslatorProfile」の前に存在する場合、それはTranslatorProfile 'が定義されていません... –
まあ、一般的なルールとして、あなたは文字列 '' app_name.model_nameように、モデルの関連フィールドの提供しなければならないと述べています''これらの問題を避けるために。 – schwobaseggl