Django,编辑具有唯一字段的表单,form.is_valid返回 false


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((返回false,因为unique_together检查,如何解决问题?

您应该将

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():
            ...

最新更新