django是否提供了一种验证django查询集中模型类型的方法,例如通过相关对象进行过滤?比方说,我们有以下型号:验证django查询集相关对象的类型参数
class Person(models.Model):
name = models.CharField(max_length=5)
class Author(models.Model):
name = models.CharField(max_length=25)
class Book(models.Model):
name = models.CharField(max_length=5)
author = models.ForeignKey(Author)
而且
p = Person.objects.all().first()
query = Book.objects.filter(author=p)
过滤所有的书籍,auhtor_id等于给定为person_id(P_ID),虽然书是指作者,而不是人。
当然,这是程序员避免这种错误的责任,但它是可能的。
这发生在Django 1.7
当你运行该代码时会发生什么? –
至少在django 1.7它过滤器通过author_id = p.pk – pteo
@pteo通过更有意义的维护你的代码,而不是默认的版本,显然不一致的版本记住,这两个模型甚至没有相关的第一位 –