Предоставленная пользователем электронная почта через целевую страницу не отображается в базе данных в Django - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь разместить форму подписки по электронной почте на своей целевой странице, однако я не могу увидеть входящие адреса электронной почты у моего администратора (бэкэнд). Почему он не записывает введенные пользователем сообщения электронной почты в мою базу данных?

base. html


   <form  method="post" > {% csrf_token %}
      <label >Your Email: </label>
      <input
      type="text">
      <input type="submit" value="Submit">
    </form> 

models.py

from django.db import models
from django.urls import reverse

# Create your models here.
class EmailSubmit(models.Model):
    email_name=models.EmailField(max_length=30)

forms.py

from django import forms
from .models import EmailSubmit

class EmailForm(forms.ModelForm):
    class Meta:
        model=EmailSubmit
        fields=[
        'email_name',
        ]

views.py

from django.shortcuts import render
from .forms import EmailForm



def index(request):
    return render(request, 'base.html')

def email_post(request):
    form = EmialForm(request.POST or None)
    if form.is_valid():
        form.save()
    context={
        'form':form
    }
    return render(request, 'base.html', {'form': form})

, поэтому, когда пользователь помещает электронное письмо и отправляет сообщение, страница обновляется, но на бэкэнде ничего не появляется. Что не так с моим кодом здесь?

1 Ответ

0 голосов
/ 15 марта 2020

Поле ввода должно иметь имя параметра

<input name="email_name">

или

<form method="post">
  {% csrf_token %}
  {{ form.email_name.errors }}
  {{ form.email_name.label_tag }}
  {{ form.email_name }}
  <input type="submit" value="Submit">
</form> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...