9

フィールドの 1 つが であるモデルのインスタンスを作成しようとしていますJSONField。を介してモデルのインスタンスを作成するときにfactoryboy、フィールドをJSONFieldとしてテストデータベースに保存したいと考えています。フィールドを として渡すだけで、データ型JSONに格納されます。Unicode私はこれにこだわっています。

4

2 に答える 2

14

を使用して辞書データを作成できますfactory.Dictdict_factoryその後、属性を使用してデータの最終的な形式を制御できます。

たとえばdict、JSON 文字列にシリアル化されたデータが必要な場合は、次のようにすることができます。

import json
import factory


class JSONFactory(factory.DictFactory):
    """
    Use with factory.Dict to make JSON strings.
    """
    @classmethod
    def _generate(cls, create, attrs):
        obj = super()._generate(create, attrs)
        return json.dumps(obj)


class BadgerFactory(factory.Factory):

    form_data = factory.Dict({
        'badger': ['stoat'],
    }, dict_factory=JSONFactory)

    class Meta:
        model = ...
于 2016-12-14T23:52:41.633 に答える
-1

値を辞書として渡そうとしましたか? その後、JSON に変換する必要があります。

于 2016-09-20T16:19:45.280 に答える