Django_get_pk_val()在pk存在时返回None

2024-04-20 04:23:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python、Django、djongo和MongoDB。我创建了一个简单的模型,并想保存和删除我的网页上的文档。我设法保存了它们(签入了数据库),其中的\u id是ObjectID类型。但当我试图删除它们时,我有AssertionError(无法删除对象,因为它的id属性设置为None)。对于文档d我已经按d.pk打印了pk并得到了一个正确的值,但是当我运行d._get_pk_val()时,输出为None。你知道如何让Django知道主键吗?在

我试图通过_id = models.AutoField(primary_key=True)在模型中分配pk,但是_id仍然是ObjectID类型,但是delete()希望它是int()并失败,并出现错误(int()参数必须是字符串或数字,而不是ObjectID)。在

我的型号:

class DevList(models.Model):
    dev_num = models.CharField(max_length = 200) 
    dev_name = models.CharField(max_length = 200)
    dev_descr = models.CharField(max_length = 200)
    dev_type = models.CharField(max_length = 200)

我的视图使用简单的d.save()and d.delete()函数。在

谢谢你!在


Tags: django文档dev模型noneid类型models