2016-09-03 7 views
0

Я использую Django и Bootstrap на интерфейсе, чтобы написать модуль редактирования одного профиля.Форма данных не принимается

Обычная форма от Django является уродливой, поэтому я сделал некоторые custimizing на форме. Вот HTML-форма:

 <form actoin="{% url 'edit_profile' %}" method="post"> 
      {% csrf_token %} 

      <div class="form-group row"> 
       <label for="chineseName" class="col-sm-2 control-label">name</label> 
       <div class="col-sm-10"> 
        <input name="chinese_name" class="form-control" id="chineseName" placeholder="name" value="{{form.chinese_name.value}}"> 
       </div> 
      </div> 

      <div class="form-group row"> 
       <label for="gender" class="col-sm-2 control-label">gender</label> 
       <div class="col-sm-10"> 
        <label class="radio-inline"> 
         {% if form.gender.value == "M" %} 
         <input type="radio" name="gender" id="gender1" value="M" checked> Male 
         {% else %} 
         <input type="radio" name="gender" id="gender2" value="M"> Male 
         {% endif %} 
        </label> 
        <label class="radio-inline"> 
         {% if form.gender.value == "F" %} 
         <input type="radio" name="gender" id="gender1" value="F" checked> Female 
         {% else %} 
         <input type="radio" name="gender" id="gender2" value="F"> Female 
         {% endif %} 
        </label> 
       </div> 
      </div> 

      <div class="form-group row"> 
       <label for="age" class="col-sm-2 control-label">age</label> 
       <div class="col-sm-10"> 
        <input name="age" class="form-control" id="age" placeholder="年龄" value="{{form.age.value}}"> 
       </div> 
      </div> 
      <div class="form-group row"> 
       <label for="phone" class="col-sm-2 control-label">phone</label> 
       <div class="col-sm-10"> 
        <input name="phone" class="form-control" id="phone" placeholder="phone" value="{{form.phone.value}}"> 
       </div> 
      </div> 
      <div class="form-group row"> 
       <div class="col-sm-offset-2 col-sm-10"> 
        <button type="submit" class="btn btn-default col-xs-12" id="confirm" style="display:none;">confirm</button> 

       </div> 
      </div> 
     </form> 

Как-то request.POST не получает данные из этой формы. Когда я включаю этот длинный фрагмент HTML в {{form}}, все в порядке.

Так что функция просмотра верна. Что-то не так с этим файлом шаблона, особенно с формой?

+1

У вас есть опечатка в атрибуте 'actoin' формы. Вы уверены, что данные POST попадают в нужный URL? – valignatev

+0

@valentjedi Я исправил это, и ничего не изменилось. Поскольку это URL-адрес по умолчанию, на который отправляется этот пост. Я пробовал жесткий кодированный URL-адрес, но все еще не работал. Я думаю, что это что-то о HTML. – alvinzoo

ответ

0

Вы должны добавить CSS в классе формы, например, если вы используете ModelForm:

self.fields['phone'].widget.attrs['placeholder'] = self.fields['phone'].label 

или если вы используете Form:

phone = forms.CharField(widget=forms.TextInput(attrs={'placeholder' : 'phone')) 
+0

Я не думаю, что это проблема. На самом деле я напечатал request.POST, оказалось, что это пусто. Я думаю, что нет ничего общего с Django. Это что-то о HTML – alvinzoo

0

Ничто не выходит из строя при первом смотреть. Одним из способов дальнейшего отладки было бы создать экземпляр формы и распечатать ее. Затем сравните все, особенно тег <form> и теги <input>.

Смежные вопросы