Проблемы с обновлением профилей пользователей - PullRequest
0 голосов
/ 26 августа 2009

Отрабатывал редактирование профилей и столкнулся с небольшой неприятностью! Следующий фрагмент кода успешно обновляет столбец mug_shot в профиле пользователя, но также удаляет все остальные данные столбца для этой конкретной записи. Это странно, потому что Django должен автоматически различать обновления / сохранения. Что еще более странно, так это то, что везде обновления и сохранения работают нормально.

Я немного растерялся.

@login_required
def add_mugshot(request):
    user = request.user
    profile = UserProfile.objects.get(user=user)
    if request.method == 'POST':
        profile_form = ProfileForm(request.POST, request.FILES, instance=profile)
        if profile_form.is_valid():
            new_profile = profile_form.save(commit=False)
            new_profile.user = user
            new_profile.save()

            return HttpResponseRedirect('/accounts/profile/')
    else:
        profile_form = ProfileForm(instance=profile)

    return render_to_response('accounts/add_mugshot.html', 
        RequestContext(request, {
            'profile_form': profile_form}))

1 Ответ

0 голосов
/ 26 августа 2009

Интересно, это что-то в шаблоне формы? Если вы не показываете все поля, Django интерпретирует их как пустые и сохранит ваш экземпляр с пустыми полями.

...