Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该什么时候在模型中创建方法_Python_Django - Fatal编程技术网

Python 我应该什么时候在模型中创建方法

Python 我应该什么时候在模型中创建方法,python,django,Python,Django,我有一个模特贴,我正在做类似这样的查询 user = CustomUser.objects.get(username=user) blocked_users = user.blocked.all() posts_except_blocked = Post.objects.exclude(author__in=blocked_users).order_by('-pub_date') 还有一些类似的。但我认识到我可以将其作为@staticmethod放入模型类中,现在它看起来 @staticmet

我有一个模特贴,我正在做类似这样的查询

user = CustomUser.objects.get(username=user)
blocked_users = user.blocked.all()
posts_except_blocked = Post.objects.exclude(author__in=blocked_users).order_by('-pub_date')
还有一些类似的。但我认识到我可以将其作为@staticmethod放入模型类中,现在它看起来

@staticmethod
def get_posts_except_blocked(user):
    user = CustomUser.objects.get(username=user)
    blocked_users = user.blocked.all()
    return Post.objects.exclude(author__in=blocked_users).order_by('-pub_date')
我应该把每一个这样的查询都放到模型中吗? 我有一种方法

def create_notifications(post):
    for word in post.content_post.split():
        if '@' in word:
            user_to_notificate = CustomUser.objects.get(username=word[1:])
            TalkAbout(where=post, _from=post.author, to=user_to_notificate).save()

我在保存邮件表单后调用它来创建通知。这可以是在视图中吗?或者我也需要把它放在后课堂上?创建post后是否可以自动调用此函数?

是的,您可以将类相关的方法放入模型类中。也可以使用模型管理器

管理器是向Django模型提供数据库查询操作的接口。Django应用程序中的每个模型都至少有一个管理器。管理类的工作方式记录在查询中;本文档特别涉及自定义管理器行为的模型选项


谢谢,我会检查它,但我查看的创建通知方法是什么?如果它对模板没有任何响应,我可以在视图中使用类似的方法吗?当保存新帖子时,您可以使用post_保存信号发送通知。