覆盖模型中的get()方法 [英] Overriding get() method in models

查看:92
本文介绍了覆盖模型中的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆