私は基本的に私は私のファーマーにユーザからFIRST_NAME &のlast_nameを使用したいとしたいユーザー の拡張であるファーマーモデルを持っていますそれらもシリアル化してください。Djangoのcustonユーザモデル/シリアライザ
私のmodels.pyには、以下のようになります。
{ "ユーザー" を次のように
class UserSerializer(serializers.ModelSerializer):
first_name = serializers.CharField(required=True)
last_name = serializers.CharField(required=True)
class Meta:
model = User
fields = ('first_name', 'last_name')
class FarmerSerializer(serializers.ModelSerializer):
user = UserSerializer()
...
...
class Meta:
model = Farmer
fields = ('user','birth_date', 'email', 'phone_number')
たため、私はJSONを取得
:class Farmer(models.Model):
#Field for refering the default user
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
def __str__(self): # __unicode__ on Python 2
return "%s the farmer" % self.user.username
私serializers.pyは次のようになります。 :{"first_name": "Jannes"、 "last_name": "Stubbi"}、 "birth_date": "2016-04-13"、 "email": "[email protected]"、 "phone_num FIRST_NAME ": "Jannes"、" 姓 ": "Stubbi"、" Birth_DateのBER ": ""
{私はむしろとしてデータを取得したい
}、" 4912345678 「: "2016年4月13日"、 "電子メール": "[email protected]"、 "PHONE_NUMBER": "4912345678" }
私のviews.py
class JSONResponse(HttpResponse):
"""
An HttpResponse that renders its content into JSON.
"""
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
#view to get the details of all the farmers
@api_view(('GET',))
def get_all_farmers_details(request):
#Fetch all the farmers from database
results = Farmer.objects.all()
#Serialize the obtained results
serializer = FarmerSerializer(results, many=True)
return Response(serializer.data)
どのようにすることができますこれを達成するには?
これは見ましたか? http://stackoverflow.com/questions/15453072/django-serializers-to-json-custom-json-output-format –
'view'クラスも更新できます –
views.pyで更新しました。本質的にシリアライザは、ネストされていないクリーンな方法でデータを返す必要があります – Nitish