我只是Django RestApi的新手,我一直在从Java REST迁移REST API。 因此,在此我知道我会坚持使用Django方法及其结构。此外,要说它是远离JAVA的超级REST API。
Model.py类
class User(models.Model):
name = models.CharField(max_length=255)
date_created = models.DateTimeField(auto_now_add=True)
date_modiefied = models.DateTimeField(auto_now=True)
area = models.CharField(max_length=255)
class LocationData(models.Model):
user = models.ForeignKey(
User, related_name='user', on_delete=models.DO_NOTHING)
source_id = models.CharField(max_length=255)
latitude = models.CharField(max_length=255)
longitude = models.CharField(max_length=255)
speed = models.CharField(max_length=255)
kms = models.CharField(max_length=255)
date_created = models.DateTimeField(auto_now=True)
date_modiefied = models.DateTimeField(auto_now=True)
area = models.CharField(max_length=255)
serializer.py类
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('id', 'name', 'area')
class LocationDataSerializer(serializers.ModelSerializer):
class Meta:
model = LocationData
fields = ('id','source_id', 'latitude', 'longitude',
'kms', 'speed', 'user')
一切都很好,希望当我尝试从那里保存LocationData时,我必须提供用户(ForeignKey)才能保存LocationData。
但是我无法在列表中列出用户详细信息,仅显示用户:1 表示仅显示ID。
如果我介绍以下内容
class LocationDataSerializer(serializers.ModelSerializer):
user = UserSerailzer(many=False,read_only=True)
class Meta:
model = LocationData
fields = ('id','source_id', 'latitude', 'longitude',
'kms', 'speed', 'user')
现在,可以显示用户详细信息,并且我无法再选择User对象!保存LocationData对象!
请建议我如何解决此问题。谢谢!