2015-03-24 2 views
0
class modelA(..): 
    fieldA = ...  unique 
    fieldB = ...  unique 

    class Meta: 
     unique_together = [['fieldA','fieldB']] 


class formA(modelform): 

    class Meta: 
     model = modelA 
     field = ['fieldA','fieldB'] 


def viewA(request): 
    if request.method == 'POST': 
     form = formA(request.POST) 
     if form.is_valid():   here return false !!!!! 
      ...... 

В редактировать форму, когда нажмите кнопку отправить, чтобы обновить базу данных, в form.is_valid() возвращают ложь, так как unique_together проверка, как решить проблема ?Джанго, форма редактирования с уникальным полем, form.is_valid возвращают ложные

ответ

2

Вы должны пройти instance спор с экземпляром модели, который вы хотите изменить:

from django.shortcuts import get_object_or_404 

def viewA(request, pk): 
    obj = get_object_or_404(modelA, pk=pk) 
    if request.method == 'POST': 
     form = formA(request.POST, instance=obj) 
     if form.is_valid(): 
      ... 
+0

да, это работает, спасибо –