目前正在开发Django 1.6,MySQL和South:
我最近开始使用继承和Django模型。
想知道是否有人遇到过这样的问题,即从django.shortcuts运行get_object_or_404会产生404但没有找到匹配的消息,但是使用model.objects.get(pk = ###)正常编写查询将产生一个答案
我想强调的是,我们继承的模型不是抽象模型。
使用以下代码作为样本:
from django.shortcuts import get_object_or_404
Car(models.Model):
name = models.CharField(null=True, blank=True, default=None,)
trunk_size = models.IntegerField(default=0)
fleet_leader = models.ForeignKey("Car", related_name='car_fleet', null=True, default=None)
class Meta:
verbose_name = "Car"
verbose_name_plural = "Cars"
Bigcar(Car):
extra_storage_size = models.IntegerField(default=0)
class Meta:
verbose_name = "Car"
verbose_name_plural = "Cars"
所以,如果我进行查询:
get_object_or_404(Car, pk=123)
假设存在带有行或主键123的Car数据条目,我不会得到任何结果,但条目
Car.objects.get(pk=123)
会产生结果。
所以我想知道是否有人知道这些查询是怎么回事?我是否遗漏了在使用继承之后应该实现的一些设置或代码?我查看了Django文档,大部分重点是抽象模型继承用法。