覆盖模型中的get()方法 [英] Overriding get() method in models
本文介绍了覆盖模型中的get()方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图以以下方式覆盖get()方法:
Am trying to override get() method in my view as :
broadcast = Broadcast.objects.get(request, pk = broadcast_id)
在我的模型中,覆盖方法为:
In my model am overriding method as :
class Broadcast(models.Model):
person = models.ForeignKey(User)
post = models.CharField(max_length=300 , verbose_name = 'Say it out loud !')
.
.
def get(self, *args, **kwargs):
if request.user == self.person :
super(Broadcast, self).get(*args, **kwargs)
else :
return none
两个问题->
我在覆盖上哪里出错了?
如何访问传递给get的 request参数?
Two questions ->
Where am I going wrong with the overriding?
How do I access the "request" argument passed into get?
推荐答案
get
不是模型上的方法-您可以访问通过 objects
进行操作,因此它是Manager上的一种方法。请参见官方经理文档。
get
isn't a method on the model - you access it via objects
, so it's a method on the Manager. See the official Manager documentation.
定义方法签名的方式,该请求以 args [0]
的形式提供。
The way you have defined the method signature, the request is available as args[0]
.
这篇关于覆盖模型中的get()方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文