django cmsplugin_contact - PullRequest
       9

django cmsplugin_contact

1 голос
/ 19 декабря 2011

Я успешно установил django cmsplugin_contact, но мне действительно нужно сохранить форму в базе данных. Я читал о новых формах, но подразумеваемая структура файла python несколько иная, поэтому я, похоже, не заставляю его работать.

Какие-нибудь подсказки относительно того, как легко сохранить это в базе данных?

Я пробовал несколько разных вещей, но хороших результатов из этого не получилось.

Любая помощь очень ценится. Спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2012

Кстати, плагин для контактов превосходен, и забудьте документацию, просто прочитайте код, все довольно просто.

Эта ветка старая, но мне нравится вопрос, и я думаю, что мне тоже нужна такая вещь, поэтому вот ответ:

Вы можете создать новое контактное приложение smartcontact, которое расширяет плагин контактов по умолчанию ...

Плагин для контактов использует эту форму:

class ContactForm(forms.Form):
    email = forms.EmailField()
    subject = forms.CharField(required=False)
    content = forms.CharField(widget=forms.Textarea())

Тогда все, что вам нужно сделать, это создать файл cms_plugins.py внутри этой папки приложения и расширить приложение контактов, чтобы унаследовать это поведение, и просто исправить то, что вы хотите изменить. Так что проверьте этот непроверенный код ...:

from cmsplugin_contact.cms_plugins import ContactPlugin
from smartcontact.models import SmartContact #<-- your SmartContact model.

class SmartContactPlugin(ContactPlugin):

    def send(self, form, site_email):
        sc = SmartContact()
        sc.from_email = form.cleaned_data['email']
        sc.subject = form.cleaned_data['subject']
        sc.content = form.cleaned_data['content']
        #and then if you want to also send email, uncomment this to also call
        #parent's version.
        #ContactPlugin.send(self, form, site_email)

Так что, думаю, тогда вам понадобится модель, чтобы сохранить ее, и это было бы легко из полей, необходимых выше.

Не забудьте добавить свое новое приложение в settings.py и вставить plugin_pool.register_plugin(SmartContactPlugin) в конце вашего нового файла cms_plugins.py.

0 голосов
/ 19 декабря 2011

Если плагин не имеет никакой документации, вы можете также пропустить плагин и просто использовать свой собственный код представления, подключенный через приложение CMS, назначенное вашей странице.

...