Django форма не отправляется на пост - PullRequest
0 голосов
/ 08 марта 2020

У меня есть django форма, которая не отправляется при нажатии Отправить. Я пытаюсь нажать на кнопку, чтобы отправить информацию, ничего не происходит. Никакие ошибки или сообщения любого рода не отображаются в терминале или в разработчику в Chrome. На этой странице нет JS, просто html: я использовал тот же подход в другом проекте, но для этого он не работает. В чем может быть проблема с моим кодом.

models.py
class Department(models.Model):
    depart_code = models.CharField(max_length=20,unique=True)
    depart_name = models.CharField(max_length=100, blank=True, null=True)

    def __str__(self):
        return self.depart_name
views.py
class DepartmentAddView(CreateView):
    model = Department
    form_class = DeptAddForm
    template_name = 'hrms/department_form.html'


    def form_valid(self, form):
        form.save()
        return redirect('/')
forms.py
class DeptAddForm(forms.ModelForm):
    depart_name = forms.CharField(
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'span8',
            }
        ),
        label = "*Department Name",
    )
    departt_code = forms.CharField(
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'span8',
            }
        ),
        label = "*Department Code",
    )

    class Meta:
        model = Department
        fields = ['depart_code', 'depart_name']
hrms/department_form.html
<form class="form-horizontal row-fluid" method="POST">{% csrf_token %}
    <div class="control-group">
       <label class="control-label" for="basicinput">Department Code</label>
       <div class="controls">
           {{ form.depart_code }}
       </div>
    </div>
    <div class="control-group">
       <label class="control-label" for="basicinput">Department Name</label>
       <div class="controls">
          {{ form.depart_name }}
       </div>
    </div>

    <div class="control-group">
       <div class="controls">
        <button type="submit" class="btn-success">Submit Form</button>
       </div>
    </div>
</form>

Ответы [ 2 ]

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

проверьте ваш файл views.py еще раз

этот раздел специально,

def form_valid(self, form):
    form.save()
    return redirect('/')    # is this right url ?? (read below)

этот редирект здесь решит, с какой веб-страницы вы будете перенаправлять после отправки вашей формы, поэтому сделайте убедитесь, что этот путь ('/') указан в вашем файле urls.py, а если нет, то измените этот путь на правильный путь (то, что существует в вашем файле urls.py)

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

В вашем forms.py есть опечатка, где вы переопределяете поля, для поля depart_code вы написали departt_code вместо depart_code, вот что и вызывает проблему. Итак, ваш правильный forms.py должен выглядеть так:

class DeptAddForm(forms.ModelForm):
    depart_name = forms.CharField(
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'span8',
            }
        ),
        label = "*Department Name",
    )
    depart_code = forms.CharField(
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'span8',
            }
        ),
        label = "*Department Code",
    )

    class Meta:
        model = Department
        fields = ['depart_code', 'depart_name']
...