Виджет формы модели Django не отрисовывается

Framework - Django. Я пытаюсь создать контактную форму с атрибутами поля ввода. У меня проблема с первым полем «имя». Поля со второго по четвертое отлично отображаются в html. Вот мой models.py:

from django.db import models
        class md_contactalpha(models.Model):
            name = models.CharField(max_length=100, verbose_name='Name',null=False,  blank=False  )
            email=models.EmailField(max_length=100,verbose_name='Email',
            unique=True,null=False,blank=False)
            phone = models.CharField( max_length=15, verbose_name='Phone',null=True,blank=True)
            message = models.CharField(max_length=512,verbose_name='Message',   null=True,
            blank=True, )               
            def __str__(self):
                return self.name

Вот файл forms.py:

from django import forms
from .models import md_contactalpha
class fm_contactalpha(forms.ModelForm):
    class Meta:
        model = md_contactalpha
        fields = ('name', 'email', 'phone', 'message') 
        widgets = {
            'name':forms.TextInput(attrs={'class':'input_text', 'placeholder': 'Full Name'}),
            'email':forms.EmailInput(attrs={'class':'input_text'}),
            'phone':forms.TextInput(attrs={'class':'input_text'}), 
            'message':forms.Textarea(attrs={'class':'message_box','rows':5}),   
            }

Вот html-файл:

<form method="post">
        {% csrf_token %}      
            <form method="POST">
                      {{ form.as_p }}            
               </form>
<button type="submit">Send Message</button>

Как уже говорилось, последние 3 поля работают отлично. Поле «имя» не заполняется из виджета и выдает следующее -

<input type="" class=  placeholder="Name" name="Name">
                        &lt;django.forms.fields.CharField object at 0x7fb2ea920ce0&gt;

Я проверил другие сообщения на тему виджетов, но, похоже, нет ответа на вопрос, почему одно поле с названием name должно иметь проблему. Буду очень признателен за любую помощь. Спасибо.

Похоже, что внутренний/внешний тег <form> не закрыт, что и вызывает такое неожиданное поведение. Попробуйте удалить строку, содержащую второй тег <form method="POST">.

<form method="post">
    {% csrf_token %}      
    {{ form.as_p }}            
</form>

Пожалуйста, обратите внимание :

  1. Кнопка submit должна находиться в теге <form>, чтобы выполнять отправку формы. Или, как вариант, должна иметь атрибут form="yourFormId", чтобы иметь возможность отправить определенную форму (что-то вроде : <button type="submit" form="yourFormID">Send Message</button>
  2. Тег
  3. <form> без атрибута action= будет делать запрос к тому же представлению, в котором была отображена форма. Если это не то, что вы ожидаете - тогда атрибут action= должен быть установлен с url процесса представления вашей формы submit.
Вернуться на верх