Django models DRF-int()参数必须是字符串、类似字节的对象或数字,而不是';延迟属性';

Django models DRF-int()参数必须是字符串、类似字节的对象或数字,而不是';延迟属性';,django-models,django-rest-framework,django-views,Django Models,Django Rest Framework,Django Views,我有两个Json数据,我创建了单独的端点,用于将下面的Json数据保存到数据库中,我共享了相关的模型和序列化程序,我能够完美地保存数据,没有任何问题,请向下滚动查看问题详细信息 相册json: { "id": "dsadad-dsds-gfgf", "title": "Album name", "description": "Albumdescription&

我有两个Json数据,我创建了单独的端点,用于将下面的Json数据保存到数据库中,我共享了相关的模型和序列化程序,我能够完美地保存数据,没有任何问题,请向下滚动查看问题详细信息

相册json:

  {
    "id": "dsadad-dsds-gfgf",
    "title": "Album name",
    "description": "Albumdescription",
    "url": "https://example.com/albums/dsadad-dsds-gfgf"
 }
相册型号:

class Albums(models.Model):
    id = models.CharField(max_length=100,primary_key=True)
    title = models.CharField(max_length=20)
    url = models.CharField(max_length=100)
    
相册序列化程序:

class AlbumsSerializer(serializers.HyperlinkedModelSerializer):
    tracks= serializers.HyperlinkedRelatedField(
        many=True,
        read_only=True,
        view_name='people-detail'
    )
    url = serializers.CharField()

    class Meta:
        model = models.Albums
        fields = ('id', 'title','tracks','url')

    
我有第二个json数据,如下所示,它需要通过标识下面json中的albums属性与上面保存的模型数据之间的关系保存在数据库中,因此下面是代码

{
    "id": "dsdsd-fdfd0-jkjh",
    "name": "erika",
    "albums": [
      "https://example.com/albums/dsadad-dsds-gfgf"
    ],
    "url": "https://example.com/track/dsdsd-fdfd0-jkjh"
  }
  
型号:

class Tracks(models.Model):
    id = models.CharField(max_length=100,primary_key=True)
    name = models.CharField(max_length=20)
    albums= models.ForeignKey(Albums,related_name='tracks',on_delete=models.CASCADE)
    
    
序列化程序:

class TrackSerializer(serializers.ModelSerializer):
  
    albums= serializers.ListField()

    class Meta:
        model = models.Tracks
        fields = ('id', 'name','albums')

    def create(self, validated_data):
        print(validated_data)
        albums_data = validated_data.pop('albums')
        for album_url in albums_data:
            movie = models.Albums.objects.get(url=album_url)
            models.Tracks.objects.create(albums=movie, **validated_data)
        return models.Tracks
        
        
视图只是每个序列化程序的modelviewset

我得到了错误,也请告知,当URL出现在json数据中以识别父关系和子关系时,该方法是否有任何错误,在Create方法中检测到错误,这是正确的方法吗

TypeError:int()参数必须是字符串、类似字节的对象或 编号,而不是“延迟属性”


你能分享这个异常的全部回溯吗?这一行是错误的
返回模型。人
。您需要返回创建的实例,而不是模型类。我不确定您在哪里使用此序列化程序,但由于您正在创建多个人员对象,因此可以返回最后一个实例。另外,最好将单个模型类导入到您的命名空间中,而不是整个
模型
文件。谢谢你们两位响应我的查询,我正在viewset中使用serializer,我已经获取了people对象的最后一个实例,问题已经解决。谢谢,问题解决了