-1

以下のようなモデルがあります。

class MyModel(TranslatableModel):
    date_created = models.DateField(
        verbose_name=_('Date Created'), default=timezone.now)
    source = models.CharField(max_length=100, verbose_name=('Type'))
    translations = TranslatedFields(
        name=models.CharField(verbose_name=_('Name'), max_length=200)
    )

このモデルで update_or_create 関数を使用したい。指定された ID とソースを持つレコードをフェッチしたい。存在する場合は、その名前を 3 つの異なる言語で更新したいと考えています。それ以外の場合は、新しいレコードを作成します。次のコードを使用しました。name_en、name__en、translations__name_en; を試しました。それらのどれも機能しませんでした。get_or_create 関数も試しましたが、どれもうまくいきませんでした。

obj, created = MyModel.objects.update_or_create(
                                            id= id,
                                            source = 'tmp',
                                            defaults={
                                                    'name_en': en_name,
                                                    'name_fi': fi_name,
                                                    'name_sv': sv_name,
                                             })

get 関数と create 関数を別々に使用したくありません。update_or_create 関数または get_or_create 関数を使用して、django で翻訳されたフィールドにアクセスする方法を知りたいです。誰かがこれで私を助けてくれますか?

私の Django バージョン: Django==1.11.17

4

1 に答える 1