如何验证Django 1.11.x中数据库中是否存在记录的最佳方法?

时间:2017-10-17 12:41:32

标签: python django

我想验证保存前是否存在整数order。我是怎么做到的?

我的模特:

class Board(models.Model):
    name = models.CharField(...)
    curriculum = models.TextField(...)
    order = models.IntegerField(...)

[更新1]

借助@DanielRoseman的提示,我尝试在form_valid中进行。

在我的CBV中。

def form_valid(self, form):
    if Board.objects.get(order = form.instance.order):
        # DO SOMETHING
    else:
        return super(BoardCreateView, self).form_valid(form)    

我的疑问是如何向用户说明它已经存在

2 个答案:

答案 0 :(得分:2)

尝试exists()

exists()更快地检查对象是否已保存在数据库中。

来源:https://docs.djangoproject.com/en/1.11/ref/models/querysets/#django.db.models.query.QuerySet.exists

答案 1 :(得分:0)

假设你有类似的东西:

order = models.IntegerField(null=True, blank=True)

def save(self, *args, **kwargs):
    if self.order:
        print 'Do something'
    super(Board, self).save(*args, **kwargs)