私はDjango restフレームワークをWebサイトで使用しています。Django RESTフレームワークで最後のログをシリアライズ
しかし、私はちょうどちょうどこのように、speical問題を満たす:
models.py
:
class User(models.Model):
uid = models.IntegerField(
primary_key=True,
)
name = models.CharField(
max_length=15,
)
class LoginLog(models.Model):
sn = models.AutoField(
primary_key=True,
)
user = models.ForeignKey(
to=User,
)
time = models.IntegerField(
null=False,
)
IP = models.CharField(
max_length=20,
verbose_name='Login IP',
)
serializers.py
:
LoginLog
をシリアル化するにはどうすればよい
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = '__all__'
class UserListView(generics.ListAPIView,):
queryset = User.objects.all()
serializer_class = UserSerializer
UserSerializer
?ただ、このようなJSONデータを返す
:
{
"name": "admin",
"uid": 1,
"last_login": {
"time": 1503414665,
"IP": "127.0.0.1"
}
}
私はちょうど試しましたが、これは次のようにエラーを返します: 'LoginLogはJSONをシリアル化できません。 ' – YYLeo
@YYLeo私は間違いを認識しました。私はおそらく動作する解決策で私の答えを更新しました。 – wencakisa
@YYLeoまた、これはネストされた関係であるため、 'LoginLogSerializer'を実装する必要があります。 – wencakisa