Django_comments:重写post_comment()的正确方法是什么?

2024-04-25 21:56:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试自定义django_comments应用程序(github repodocs)。你知道吗

默认的get_form_target()返回django_comments.views.post_comment,这是一个基于函数的视图。post_comment()依次将HttpRedirectResponse返回到next的值(如果指定)或默认确认页。你知道吗

请参阅默认的post\u comment()实现here。你知道吗

我需要给post_comment()添加几行逻辑。我可以重写它到它仍然执行默认实现的地方,但是使用额外的逻辑吗?我可以复制原始代码并对其进行修改,但仅仅添加几行自定义逻辑就感觉有很多代码重复。你知道吗


Tags: django函数代码formgithub应用程序docstarget
1条回答
网友
1楼 · 发布于 2024-04-25 21:56:00

这取决于你的逻辑发生在什么地方,相对于当前的post_comment()。如果您只是想在post_comment()之前做些什么,那么只需复制一个指向现有func的指针,创建func,并在末尾调用原始func即可。最后,您可以通过将您的函数分配给另一个模块的post_comment()来MonkeyPatch它。你知道吗

OTOH,如果你想做的是改变当前函数中发生的事情,那么你可能需要复制一个代码,然后MonkeyPatch如上所述。你知道吗

注意:即使有好的评论警告人们这是在做什么,MonkeyPatching代表着一个维护定时炸弹只是等待在某个不方便的时间在未来。你知道吗

相关问题 更多 >

    热门问题