Задать вопрос
@sazhyk

Где ошибка в функции редактирования данных формы Django?

Пытаюсь отредактировать данные, которые сохранены через ModelForm.
Моделька
class Person(models.Model):
    class Meta:
        db_table = 'person'
    author = models.ForeignKey(User, )
    first_name = models.CharField( verbose_name="Имя",  max_length=150, )
    last_name = models.CharField(verbose_name="Фамилия", max_length=150, )
    date_of_births = models.DateField( verbose_name="Дата рождения",max_length=10, )
    timestamp = models.DateTimeField(verbose_name="Дата создания", auto_now_add=True, )
    time_update = models.DateTimeField(verbose_name="Дата обновления",auto_now=True, )

Форма
class PersonForm(forms.ModelForm):
    class Meta:
        model = Person
        fields = ( 'first_name', 'last_name', 'date_of_births', )

Вьюшка, в которой редактирую
def edit_person(request, person_id):
    person = get_list_or_404(Person, id=person_id)
    if request.method == "POST":
        person_form = PersonForm(request.POST, instance=person)
        if person_form.is_valid():
            person_f = person_form.save(commit=False)
            person_f.author = request.user
            person_f.save()
            messages.success(request, "Запись в базе данных обновлена!")
            return redirect('/')
    else:
        person_form = PersonForm(instance=Person)
    context = { 'person_form': person_form,}
    return render(request, 'anketa/edit_person.html', context)

Урлы
urlpatterns = [
    ...
    url(r'^(?P<person_id>\d+)/edit/$', a_views.edit_person, name='edit_person'),
    ...
]

На страницу редактирования попадаю, но вижу следующее:
aff48d80c3a74f4db5a745f2fe56f977.JPG
А если меняю значения в форме на странице и пытаюсь сохранить, то получаю ошибку
AttributeError: 'list' object has no attribute '_meta'

Помогите исправить ошибки.
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы