我在Django中有一个包含太多字段的模型。 例如:
class MyModel(models.Model):
param_1 = models.CharField(max_length=100)
...
param_25 = models.CharField(max_length=100)
现在我需要根据id获取详细信息视图。我见过可能的方法,
obj = MyModel.objects.get(pk=5)
obj = MyModel.objects.filter(pk=5)[0]
obj = get_object_or_404(MyModel, pk=1)
最后一种方法最适合我,因为我可以在没有任何代码更改的情况下提供404错误。但我只需要param_1和param_2。因此我需要一个类似的查询,
SELECT "param_1" FROM mymodel WHERE pk=1
如何使用get_object_or_404完成此操作?
有人可以帮忙找到解决方案吗?
答案 0 :(得分:6)
get_object_or_404
的第一个参数可以是a Model, a Manager or a QuerySet:
必需参数
<强>克拉斯强>
要从中的Model类,Manager或QuerySet实例 得到对象。
因此,您所要做的就是传入预先过滤的QuerySet,例如only
返回的QuerySet:
obj = get_object_or_404(MyModel.objects.only('param_1', 'param_2'), pk=1)
答案 1 :(得分:1)
第一个参数是模型的类名,所有其他参数都是将传递给get的参数。所以它不能在这里使用,但模仿它的功能非常简单。
var slideshow = {
sliderImages: ["img/img1.png", "img/img2.png"],
timer: function() {
this.sliderImages.forEach(function(img) {
var container = document.getElementById('container');
var image = document.createElement('img');
container.appendChild(image);
image.src= img;
})
}
}
基于:https://docs.djangoproject.com/en/1.10/_modules/django/shortcuts/#get_object_or_404