2017-10-30 2 views
0

私のdjangoアプリケーションは、翻訳可能で静的なページとモデルでもなければなりません。私はdjango-parler appを使っています。これは正常に動作しますが、単純なモデルの場合、抽象モデルクラスから継承しないモデルです。これは私にこのエラーが発生した抽象モデルのdjango-parlerの翻訳

class Car(Vehicle) 
    """...""" 

のは、私たちは車抽象モデル

class Vehicle(TranslatableModel): 

    translations = TranslatedFields(
     description=models.CharField(max_length=100) 
    ) 

    class Meta: 
     abstract = True 

と自動車である子モデルを持っているとしましょうはTypeError:用TranslatedFieldsModelを作成できません抽象クラス車両

私はまだdjangoモデルの継承を使用したいと思います。だから、私はdjango-parlerを使って自分のモデルを翻訳するために何ができますか?抽象モデルの翻訳をサポートしていますか?これを実現するために別のアプリケーションを使う必要があります。

答えて

0

問題は、parlerは変換されたフィールドが宣言されているモデルに対してForeignKeyの変換のための余分なdbテーブルを暗黙的に作成することです。抽象モデルに独自のdbテーブルがないため、FKを抽象モデルに追加することはできません。この抽象モデルをサブクラス化する2つのモデルをお持ちの場合はどうなりますか?どのテーブルが変換テーブルのFKを指していますか?あなたはモデル間で同じ翻訳可能なフィールドを共有し、まだ比較的DRYになりたい場合は、あなたのモデルの外に翻訳可能なフィールドを実装しようとすることができ

vehicle_translations = TranslatedFields(
    description=models.CharField(max_length=100) 
) 

class Car(TranslatableModel): 
    translations = vehicle_translations 
+0

私は別のフィールドの翻訳を置くことができますどのように? translations2 = another_base_class_translation。 –

+0

多くの翻訳は追加が難しいでしょう、私は認めます:)# – schwobaseggl

関連する問題