Мезонин Django делает что-то после добавления нового поста

Я использую мезонин для проекта и есть необходимость уведомлять подписчиков о добавлении нового сообщения, я хотел написать свою функцию просмотра, чтобы при публикации нового сообщения я мог сделать что-то вроде:

# pseudo_code.py
blogposts.onAdd(notify())

def notify():
    email(users)

person benjaminz    schedule 16.09.2015    source источник


Ответы (1)


Все, что вам нужно, есть в документах:

https://docs.djangoproject.com/en/1.8/topics/email/

http://mezzanine.jupo.org/docs/content-architecture.html#page-processors

Вот некоторый код из моего мезонинного проекта:

модели.py

from mezzanine.pages.models import Page
from django.db import models

class WorkOrderPage(Page): #create model that inherits from page
    header = models.CharField(max_length=3000,null=True)

admin.py

from .models import WorkOrderPage
from django.contrib import admin
from mezzanine.pages.admin import PageAdmin

admin.site.register(WorkOrderPage, PageAdmin) //make page available to admin

page_processors.py

from mezzanine.pages.page_processors import processor_for
from .models import WorkOrderPage
from django.core.mail import send_mail
from django.core.mail import EmailMultiAlternatives

class NewWorkOrderForm(forms.Form):
    //create form

@processor_for(WorkOrderPage)
def newworkorder_form(request, page):
    form = NewWorkOrderForm()
    if request.method == "POST":
        form = NewWorkOrderForm(request.POST)
        if form.is_valid():
            from_email = '[email protected]'
            to_email = '[email protected]'
            subject, from_email, to = 'subject text', from_email, to_email
            text_content = 'content of email'
            html_content = 'html content'
            msg = EmailMultiAlternatives(subject text, text_content, from_email, [to])
            msg.attach_alternative(html_content, "text/html")
            msg.send()
            return redirect('/redirect to?')

    return {"form": form}

Таким образом, вы должны создать «страницу заказа на работу» в администраторе. На этой странице будет форма, когда они отправляют форму, она отправляет электронное письмо.

person joeskru    schedule 29.09.2015
comment
спасибо, это может сработать, но я не фанат такой тонкой настройки Mezzanine. В итоге у меня появилась кнопка для просмотра администратором, которая говорит об отправке уведомлений по электронной почте, которая запускает событие отправки электронной почты. - person benjaminz; 03.10.2015
comment
я знаю это старое .. любые ссылки на ваше решение? - person joeskru; 17.11.2015
comment
нет, в итоге я добавил кнопку и привязал к этой кнопке любые конечные точки API, которые необходимо запросить. Хотя решил мою проблему. - person benjaminz; 17.11.2015