Сохранение формы модели - не проверяется - PullRequest
0 голосов
/ 01 июня 2011

Я тут что-то не так делаю, но не могу найти.

Я использую форму модели:

class ArtistInfo(ModelForm):
    class Meta:
        model = Onesheet
        fields = (
            'name',
            'genre',
            'location',
            'biography',
        )

И пытается сохранить введенные данные для существующей записи.

def edit_artist_info(request, onesheet):
    onesheet = Onesheet.objects.get(id = onesheet)
    if request.method == 'POST':
        form = ArtistInfo(request.POST, instance=onesheet)
        if form.is_valid():
            test = form.save(commit=False)
            test.save()
            HttpResponseRedirect('/')
    form = ArtistInfo(instance=onesheet, label_suffix='')
    variables = RequestContext(request, {
        'onesheet':onesheet,
        'form': form,
    })
    return render_to_response('edit_artist_info.html', variables)

Но это не экономия. Он просто перезагружает страницу с тем, что изменил пользователь, но если вы действительно обновите страницу (извлекая значение из БД), это старое значение.

Есть идеи? Если это потому, что форма на самом деле не проверяется, я не знаю, почему она не проверяется.

1 Ответ

1 голос
/ 01 июня 2011

попробуй просто

if request.method == 'POST':
    form = ArtistInfo(request.POST, instance=onesheet)
    if form.is_valid():
        form.save()
        return HttpResponseRedirect('/')

В вашем коде отсутствует инструкция return , и дополнительное сохранение () не требуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...