0
Itemのモデルのシリアライザがあります。django rest frameworkの関連フィールドの異なるフィールドを表示
class Item(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=150)
body = models.TextField(blank=True)
image = models.ImageField(upload_to=get_upload_file_name, blank=True)
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('id', 'user', 'title', 'body', 'image')
def create(self, validated_data):
item = Item.objects.create(
user=self.validated_data['user'],
title=self.validated_data['title'],
body=self.validated_data['body'],
image=self.validated_data['item_image']
)
return item
ユーザーシリアライザ。
class CustomUserSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = (
'id', 'email', 'password', 'username', 'first_name', 'last_name',
)
extra_kwargs = {
'password': {'write_only': True},
'id': {'read_only': True}
}
def create(self, validated_data):
user = CustomUser.objects.create(
email=validated_data['email'],
username=validated_data['email'],
first_name=validated_data['first_name'],
last_name=validated_data['last_name'],
)
user.set_password(validated_data['password'])
user.save()
return user
しかし、ItemSerialzerのuserフィールドでは、ユーザーのID、first_name、last_nameを表示します。これどうやってするの?これがノブの質問であればごめんなさい、私は初心者です。ありがとうございました。
カウユーは、項目シリアライザでユーザーモデルの属性を表示したい場合は、項目とユーザーモデル –
の間のモデル関係を表示します。 ItemSerializerで直接User serialiserを呼び出すことができます。 –
@MushahidKhanアイテムモデルを追加しました。あなたはそれを見ていただけますか? –