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

3
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,如何解决这个问题?
1个回答

4

在编辑模型实例时,您需要传递 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():
            ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接