当pk存在时,Django _get_pk_val()返回None

时间:2017-09-06 10:02:42

标签: python django mongodb primary-key

我使用Python,Django,djongo和MongoDB。我创建了一个简单的模型,想要保存和删除我的网页上的文档。我设法保存它们(在DB中检查),_id是ObjectID类型。但是当我尝试删除它们时,我有AssertionError(无法删除对象,因为它的id属性设置为None)。对于文档d,我通过d.pk打印了pk并获得了正确的值,但是当我运行d._get_pk_val()时输出为无。你知道如何让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()函数。

谢谢!

0 个答案:

没有答案