LINUX.ORG.RU

Проблема сохранения данных в БД отправленных с формы

 , ,


0

1

Отрисовал такую форму в html

http://radikal.ru/users/sky-shy#img=6161535038&rnd=1

этот шаблон я использую в др. форме, унаследовавшись от него

Вот обработка этой формы во вьюхе:

http://radikal.ru/users/sky-shy#img=6161533680&rnd=2

Вот сама модель:

http://radikal.ru/lfp/s010.radikal.ru/i311/1707/68/aa66dae8f613.jpg/htm

Ошибок нет при отправке, но данные не сохраняются в базе. В чем может быть проблема?

нормально код сюда скинуть чтоле не можешь? форму в шаблоне, лучше так отрисовывать:

{% for field in form %}
  <div class="form-group">
    {{ field }}
  </div>
{% endfor %}

ну и само сохранение ппц конечно, использую ModelForm для этого и что за UserForm кстати? должно быть как-то так:

if not form.is_valid():
    messages.error(request, form.errors)
    return redirect("my_form")

album = form.save()

Int64 ★★★
()
Ответ на: комментарий от gruy

просто пример, что не так? если форма не валидна, то используем messages framework и кладем туда ошибки и редиректим обратно на форму, как пример. Если все хорошо, можно получить экземляр Album сохраненного в бд, через form.save()

Int64 ★★★
()
Последнее исправление: Int64 (всего исправлений: 2)
Ответ на: комментарий от Int64

При ошибке нужно не редирект делать, а рендер, где возвращать всю форму и ее ошибки. Не нужно новичка сбивать с толку.

gruy ★★★★★
()
Ответ на: комментарий от anonymous

Ахаха)) Чтобы этот код никто не скопировал нечаянно))

SKY_SHY
() автор топика
Ответ на: комментарий от gruy

согласен, привел просто как пример для ModelForm, не более. Тогда и в шаблоне надо их выводить:

{% for field in form %}
  <div class="form-group">
    {{ field.errors }}
    {{ field }}
  </div>
{% endfor %}

Но иногда и так делают, если все ошибки обрабатываются через ajax.

Int64 ★★★
()
Ответ на: комментарий от Int64

Спасибо, я просто уже этот класс переименовал, т.к в др. аппликейшене есть класс с таким именем, хотя если я не ошибаюсь это не влияет?

SKY_SHY
() автор топика
Ответ на: комментарий от Int64

Да я не знаю - делал все по видео

<div class = "form-group">
    <label>Название альбома</label>
    <input type="text" name="{{ form.title.name }}" class="form-control">
</div>

<div class = "form-group">
    <label>Название исполнителя</label>
    <input type="text" name="{{ form.artist_name.name }}" class="form-control">
</div>

<div class = "form-group">
    <label>Год релиза</label>
    <input type="text" name="{{ form.year.name }}" class="form-control">
</div>


<div class = "form-group">
    <label>Жанр</label>
    <input type="text" name="{{ form.genre.name }}" class="form-control">
</div>

<div class = "form-group">
    <label>Имя пользователя</label>
    <input type="text" name="{{ form.genre.name }}" class="form-control">
</div>

 <div class = "form-group">
    <label>Плей-лист</label>
    <textarea class="form-control" rows="10" name="{{ form.playlist.name }}"></textarea>
</div>

SKY_SHY
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.