Отрабатывал редактирование профилей и столкнулся с небольшой неприятностью! Следующий фрагмент кода успешно обновляет столбец 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}))