Мне нужно вернуть ссылку, созданную после завершения ModelForm - PullRequest
0 голосов
/ 29 октября 2010

часть forms.py

класс FormPublicar (forms.ModelForm):

class Meta:
    model = Publicacao
    exclude = ('usuario', 'aprovado', 'cadastrado_em', 'slug')

def enviar(self):
    titulo = 'mensagem enviada pelo site'
    destino = self.cleaned_data['emailp']
    mensagem = u"""
    Message that will be sent after completing the form.
    Here I must pass a link to the full URL into the body of the email, something like:
    [ 1 ]http://www.domain.com/item/playstation3/
                         /view/slug/   
    """  % self.cleaned_data

    send_mail(
        subject = titulo,
        message = mensagem,
        from_email = 'inform@domain.com',
        recipient_list =[destino],
        )

[1] Я читал про "реверс", пытался смонтировать url + view + параметр,Но я не смог правильно сгенерировать ссылку, сделал несколько способов, но не смог.

Мне нужно передать слаг домена + представление + параметр, который генерируется после заполнения формы.

Для получения электронной почты см. Правильную ссылку.

Кто-нибудь может мне помочь?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 октября 2010

Бернд, спасибо.Об «обратном» я уже знал.

Краткий пример.здесь только вопрос отождествления.http://pastebin.ca/1977489

Спасибо, и я прошу прощения, я все еще изучаю Джанго.

0 голосов
/ 30 октября 2010

Использование reverse() обычно является правильным способом создания части URL без домена.Например, если ваша конфигурация URL содержит что-то вроде следующего:

(r'^item/(?P<item>[-%\w]+)/view/(?P<slug>[-\w]+)$', 'my_view_function')

, то следующий вызов

reverse('my_view_function', kwargs={'item': 'playstation3', 'slug': 'my-slug'})

должен вернуть /item/playstation3/view/my-slug.

Желательномодель Publicacao должна определять метод get_absolute_url, который возвращает фактический URL-адрес для экземпляра модели.См. http://docs.djangoproject.com/en/1.2/ref/models/instances/#get-absolute-url.

Часть доменного имени может быть получена с использованием платформы Сайтов:

>>> from django.contrib.sites.models import Site
>>> s = Site.objects.get_current()
>>> s.domain
u'localhost:8000'

Конечно, вам придется правильно настроить домен вашего сайта.Смотри также http://docs.djangoproject.com/en/1.2/ref/contrib/sites/#getting-the-current-domain-for-full-urls.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...