Нужна помощь для решения вопросов формы рассылки в базовом шаблоне - PullRequest
0 голосов
/ 18 января 2020

Вот то, что у меня есть в базе. html (внутри нижнего колонтитула, поэтому эта форма бюллетеня будет на каждой странице)

<form action="" method="POST">
                            {% csrf_token %}
                            <div class="form-group">
                                <div class="input-group mb-3">
                                    <input type="text" class="form-control" placeholder='Enter email address' onfocus="this.placeholder = ''" onblur="this.placeholder = 'Enter email address'">
                                    <div class="input-group-append">
                                        <button class="btn" type="submit"><span class="lnr lnr-arrow-right"></span></button>
                                    </div>
                                </div>
                            </div>
                        </form>

Вот модель (подписка / models.py)

class Subscriber(models.Model):
    email = models.EmailField()
    timestamp = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email

что у меня есть в views.py

def subscribe_form(request):
    if request.method == 'POST':
        email = request.POST.get('email')
        new_email = Subscriber()
        new_email.email = email
        new_email.save()
    return redirect('home-page')

вот urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.PostListView.as_view(), name='home-page'),
    path('subscribe/', views.subscribe_form, name='subscriber'),
    path('archive/', views.archive, name='archive-page'),
    path('category/', views.category, name='category-page'),
    path('contact/', views.contact, name='contact-page')
]

после отправки кнопки отправки я получаю эту ошибку в shell

Method Not Allowed (POST): /
Method Not Allowed: /
[18/Jan/2020 04:13:11] "POST / HTTP/1.1" 405 0

Итак, я новичок, я пытаюсь создать блог, но я не нашел никакого полезного решения, которое могло бы решить эту проблему. возможно я иду совершенно неправильно, но в любом случае, если кто-то может помочь мне заставить это работать. Спасибо всем.

1 Ответ

1 голос
/ 18 января 2020

В вашем URL индекса вы не можете оставлять сообщения. Измените его на подписку /

<form action="{% url 'subscriber' %}" method="POST>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...