0
if request.method == 'POST':
    try:
        form = ExampleForm(request.POST,
                               instance=Example.objects.get(user=request.user))
    except:
        form = ExampleForm(request.POST)
    if form.is_valid():
        m = form.save(commit=False)
        is_ok = request.POST.get('is_ok')
        m.is_ok = is_ok
        m.user = request.user
        m.save()

如何添加is_ok字段instance=Example.objects.get(user=request.user)

注意:我不能将此字段添加到模型表单中。

如果我更改现有数据,我的is_ok值将更改为默认值

编辑:

<input type="checkbox" disabled="disabled" checked="checked" name="is_ok" id="id_is_ok"/>

如果禁用此输入,则 my is_ok = request.POST.get('is_ok')= None

4

1 回答 1

1

你真的应该在你的 ExampleForm 类的声明中这样做。我假设这个类看起来像这样

from your_app.models import ExampleModel
from django.forms import ModelForm

class ExampleForm(ModelForm):
    class Meta:
        model = ExampleModel

您只需要在表单上声明该字段。就像是 -

class ExampleForm(ModelForm)
    is_ok = forms.BooleanField()
    class Meta:
        model = ExampleModel

表单类现在将处理字段input元素的创建is_ok,就像它为所有其他字段所做的那样,但它将覆盖模型上的设置 - 它不会再被禁用(有关更多信息,请参阅文档)。

于 2013-02-07T14:17:15.540 回答