user_id не является уникальным - PullRequest
0 голосов
/ 01 июля 2010

У меня есть эта вещь в моих взглядах, py

def status_change(request):
if request.method == "POST":
    rform = registerForm(data = request.POST)
    if rform.is_valid():
        register = rform.save(commit=False)
        register.user = request.user
            register.save()
                return render_to_response('home.html')
else:
    rform = registerForm() 
return render_to_response('status_change.html',{'rform':rform}) 

когда я пытался сохранить поля во второй раз в модели, он говорит:

"столбец user_id не уникален" на самом деле я хочу обновить его я попробовал rform.save (force_update = True) но это не сработало как решить эту вещь.

Ответы [ 2 ]

1 голос
/ 01 июля 2010

Каждый раз, когда вы сохраняете форму, django создает новый объект. Если вам нужно изменить (а не создать новый) какой-либо объект, вам нужно сначала получить объект, а затем создать форму с экземпляром этого объекта:

myobject = ...objects.get(....)
mform = MyForm(instance=myobject)
0 голосов
/ 06 июля 2010

проблема решена

def status_change(request):
instance = get_object_or_404(register,pk=request.user.id)
 #rest of the code here
...