python - 在 Django 管理中,在初始保存时发推文?

标签 python django model tweets

我正在使用 Django,我最近创建了一个博客作为我的第一个 Django/python 项目。为了简单起见,我决定为我的博客管理系统使用默认的管理区域。我想在最初创建博客文章时自动发布 Twitter 更新,但在编辑时不会。我知道如何发送推文,但我如何在帖子的初始保存时运行一些代码,而不是在编辑之后?

我使用的是 Django 1.5.4,博客文章的模型简称为“Post”。

最佳答案

您至少可以通过两种方式做到这一点:您可以像这样覆盖模型的保存方法:

class Post(models.Model):
    ...
    def save(self, *args, **kwargs):
       if not self.pk:
         #tweet about the post
       super(Post, self).save(*args, **kwargs)

..但是如果您只想将此行为与 django admin 相关联(例如,您只想在通过 admin 应用程序创建帖子而不是在显式调用 Post.objects.create() 时发布有关帖子的推文), 然后你可以使用 ModelAdmin 类的 save_model() 方法:

class PostAdmin(admin.ModelAdmin):
   ....
   def save_model(self, request, obj, form, change):
      if not obj.pk:
         #tweet about the post
      obj.save()

你也可以看看https://docs.djangoproject.com/en/dev/ref/contrib/admin/

关于python - 在 Django 管理中,在初始保存时发推文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20874828/

相关文章:

python - 如何在 Python 中搜索字符串的所有大写和小写版本?

javascript - Django 试图将我的数组保存到模型中

django - 是否可以在 Django 中为 GenericForeignKey 使用自然键?

python - Python 中的列表最后一个元素

python - Numpy "orthogonal"广播

typescript - 在客户端和服务器之间共享类型

javascript - 是否可以删除操作 Hook ?

C++ 在结构中存储函数和运算符

python 列表 : double each element in a list while maintaining the structure

python - Django - 结合 DetailView 和 ListView