0
だから私は、Djangoの中に、次のモデルクラスがある場合:のSerializeモデルは、ジャンゴ・休息・フレームワークを使用してJSONの辞書にオブジェクト
class Person(models.Model):
name = models.CharField(max_length=250)
is_active = models.BooleanField(default=True)
address_line1 = models.CharField(max_length=100, blank=True, null=True)
address_line2 = models.CharField(max_length=100, blank=True, null=True)
town = models.CharField(max_length=100, blank=True, null=True)
county = models.CharField(max_length=100, blank=True, null=True)
post_code = models.CharField(max_length=100, blank=True, null=True)
をし、私の目標は、次のJSONにそれをシリアル化することです:
{
"name": "Joe Bloggs",
"is_active": true,
"contact": {
"address1": "Bloggs House"
"address2": "1 Bloggs Lane",
"city": "Bloggs Town",
"county": "Bloggs Town",
"zip": "BL0 GG5",
"country": "UK"
}
}
私は次のことを試してみましたが、それはうまくいきませんでしたし、私はそれがserializers.ListFieldは(私は同じもののリストについては、あることを意味していると思い)動作するように意図された方法ではありませんかなり確信している:
class MailChimpListSerializer(serializers.ModelSerializer):
class Meta:
model = Person
contact = serializers.DictField(
address1=serializers.CharField(source='address_line1'),
address2=serializers.CharField(source='address_line2'),
city=serializers.CharField(source='town'),
state=serializers.CharField(source='town', read_only=True),
zip=serializers.CharField(source='post_code'),
country=serializers.SerializerMethodField()
)
permission_reminder = serializers.SerializerMethodField()
campaign_defaults = serializers.DictField(
from_name=serializers.CharField(source='name'),
from_email=serializers.CharField(source='primary_contact_email'),
subject=serializers.CharField(),
language=serializers.CharField()
)
email_type_option = serializers.SerializerMethodField()
fields = ('name', 'contact', 'permission_reminder',
'campaign_defaults', 'email_type_option')
住所などを含む連絡先JSONリストを作成するにはどうすればよいですか?何をしたい
私はエラーを取得しています:__init__ スーパー(DictField、自己)に、ライン1495 '.__のinit __(* argsを、** kwargsから)' 'TypeError例外:)__init __(予期しないキーワード引数 'を得ました「都市」 – Cephlin
@Cephlin only 'city'?他のフィールドは問題ありませんでしたか?私は少しこれを試してみます。その間、追加した他の手動方法を試してみてください。 – bakkal
私はそれらをひとつずつコメントアウトするときに、同じ例外が発生します。ああSerializerMethodField、私はそうしないと思った。 – Cephlin