Django序列化器无法发布或列出用户详细信息

时间:2019-02-08 07:01:35

标签: python django

我只是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')

I can post the user-id by selecting User object[

一切都很好,希望当我尝试从那里保存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')

enter image description here

现在,可以显示用户详细信息,并且我无法再选择User对象!保存LocationData对象!

请建议我如何解决此问题。谢谢!

0 个答案:

没有答案