@robocop45
Only python

Почему не перенаправляет на форму письма?

forms.py

from django import forms
from django.urls import reverse

class EmailPostForm(forms.Form):
    name = forms.CharField(max_length=25)
    email = forms.EmailField()
    to = forms.EmailField()
    comments = forms.CharField(required=False,
                               widget=forms.Textarea)

def get_absolute_url(self):
    return reverse('post_share', kwargs={'id': self.id})


views.py
def post_share(request,post_id):
    # Retrieve post by id
    post = get_object_or_404(Post, pk=post_id, status='published')
    sent = False
    if request.method == 'POST':
        # Form was submitted
        form = EmailPostForm(request.POST)
        if form.is_valid():
            # Form fields passed validation
            cd = form.cleaned_data
            post_url = request.build_absolute_uri(post.get_absolute_url())
            subject = '{} ({}) recommends you reading "{}"'.format(cd['name'], cd['email'], post.title)
            message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(post.title, post_url, cd['name'], cd['comments'])
            send_mail(subject, message, 'admin@myblog.com', [cd['to']])
            sent = True
    else:
        form = EmailPostForm()

    dir={   's_post': post,
            'form': form,
            'sent': sent}
    return render(request, 'blog/share.html', dir)


urls.py
path('share/<int:post_id>', post_share, name='post_share')


шаблон
{% extends "blog/base.html" %}
{% block title %}{{ post.title }}{% endblock %}
{% block content %}

    <h1>{{ more.title }}</h1>
    <p class="date">
        Published {{ more.publish }} by {{ more.author }}
    </p>
{{ post.body|linebreaks }}
<p>
    <a href="{{ post.get_absolute_url }}">Share this post</a>
</p>
{% endblock %}


Нажима на 'share this post' и ничего не происходит
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы