Python 为什么可以';我不能给Django中的对象添加多个关系吗?

Python 为什么可以';我不能给Django中的对象添加多个关系吗?,python,django,django-rest-framework,many-to-many,django-orm,Python,Django,Django Rest Framework,Many To Many,Django Orm,我有一个用Django制作的api,它有两个由多个关系链接的模型 class Type(models.Model): name = models.CharField(max_length=64) application = models.CharField(max_length=64) description = models.TextField() class Device(models.Model): reference = models.CharField

我有一个用Django制作的api,它有两个由多个关系链接的模型

class Type(models.Model):
    name = models.CharField(max_length=64)
    application = models.CharField(max_length=64)
    description = models.TextField()

class Device(models.Model):
    reference = models.CharField(max_length=64)
    application = models.CharField(max_length=64)
    types = models.ManyToManyField(to='Type')
我正在使用Django Rest框架,在该框架中,我在序列化程序中有一个
create()
方法,用于向
设备添加
类型

def create(self, validated_data):
    # Serialize Types
    types_data = validated_data.pop('types')
    device = Device.objects.create(**validated_data)
    print("DEVICE TYPE",type(device))
    for type_data in types_data:
        print("TYPE OF TYPE_DATA", type(type_data))
        print("TYPE_DATA", type_data)
        t = Type.objects.create(device=device, **type_data)
        print("TYPE", t)
        device.types.add(t)

    print("TYPES IN OBJECT", device.types)
    device.save()
    return device
不幸的是,它似乎不起作用。我在上面的代码中有一些print语句,它的输出是:

DEVICE TYPE <class 'iot.models.Device'>
TYPE OF TYPE_DATA <class 'collections.OrderedDict'>
TYPE_DATA OrderedDict([('name', 'Serve north.'), ('application', 'Particular outside.'), ('description', 'Teacher rather.')])
TYPE Type object (1)
TYPES IN OBJECT iot.Type.None
设备类型
类型\数据的类型
键入数据顺序信息([('name','Serve north.'),('application','specific outside.'),('description','Teacher-宁.'))
类型对象(1)
对象iot.Type.None中的类型
正如您在最后一行看到的,这些类型似乎没有被添加


我做错了什么?欢迎所有提示

您需要打印
device.types.all()
。另外请注意,您不需要执行
device.types.add(t)
,因为您已经在
create
调用中将类型分配给了设备。@DanielRoseman-太棒了,就是这样。谢谢如果你加上它作为答案,我可以接受。