如何在Django中扩展管理视图?

时间:2018-05-12 14:38:03

标签: python django django-views django-admin

我想扩展用于在数据库中创建新条目的管理视图。

例如,我可以用他们的作者,他们的类别,日期等创建新书...... 当我创建一本新书时,我想向所有用户发送通知,这些用户的作者是他们最喜欢的作者之一。

由于django-notifications

,通知系统已经正常工作

所以,我只需要在管理视图中的book.save()之后添加这种东西:

writer = <the_author_selected_in_the_form> # writer ID
profiles = Profile.favorites_authors.through.objects.filter(authors_id=writer)
for profile in profiles:
    notify.send(profile.profile_id, recipient=profile.profile_id, verb='New book, called <book_title>, from <author_name>')

谢谢

1 个答案:

答案 0 :(得分:0)

我认为&#34; Django方式&#34;这样做是通过使用信号。像这样:

from my.book.app import Book
from django.db.models.signals import post_save

def book_created(sender, instance, **kwargs):
    # Notification code goes here
    if kwargs["created"]:
        notify_users()

post_save.connect(book_created, sender=Book)

您可以在Django docs中详细了解它们,初学者也有一些great articles