Django如何检查数据库中是否存在条目?

时间:2018-08-27 14:49:19

标签: django django-models

我的应用程序中具有以下模型:

class Device(models.Model):

    class Meta:
        verbose_name_plural = "devices"

    imei = models.CharField(max_length=15, unique=True)
    last_update = models.DateTimeField()
    rule = models.CharField(max_length=20)

    @classmethod
    def create(cls, imei, last_update, rule):
        device = cls(imei = imei, last_update = last_update, rule = rule)
        return device

    def __str__(self):
        return self.imei

现在,执行更新后,我想检查设备是否已经存储在数据库中。所以我使用了这段代码:

def deviceUpdate(request):
if request.method == "POST":
    json_data = json.loads(request.body)
    imei = json_data['imei']
    date = json_data['updateDate']
    rule = json_data['rule']

    if Device.objects.filter(imei="123456789").exists():
        return True
    else:
        return False

但是由于某种原因,当我运行它时,它不起作用,并且不断出现500错误。我在这里做什么错了?

编辑: 这是我得到的错误: / policies / update中的 AttributeError “布尔”对象没有属性“状态代码”

编辑2 我发现了问题,但忘记了应该返回响应对象。 相反,我返回的是布尔值。

1 个答案:

答案 0 :(得分:2)

确保您的视图返回一个HttpResponse对象,而不仅仅是“ True”或“ False”。例如

from django.http import JsonResponse

def deviceUpdate(request):
    ...
    return JsonResponse(True, safe=False)