Django表格.ChoiceField总是被改变

时间:2018-12-13 16:10:06

标签: django django-models django-forms django-admin

Django==1.10

我想在models.BooleanField应用中将forms.ChoiceField用作admin

models.py

from __future__ import unicode_literals
from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=255)
    bool_field = models.BooleanField()

admin.py

from django.contrib import admin
from .models import MyModel
from .forms import MyModelForm

@admin.register(MyModel)
class TemplateAdmin(admin.ModelAdmin):
    form = MyModelForm
    list_display = ['name','bool_field']

forms.py

from django import forms

class MyModelForm(forms.ModelForm):
    bool_choices = ((True, "Yes"),(False, "No"))
    bool_field = forms.ChoiceField(choices=bool_choices)

所有显示的内容都与我想要的一样,但是实际上每次我保存实例时,History链接都显示bool_field被更改,即使它没有更改。

我尝试将bool_field的{​​{1}}更改为TypedChoiceField,但是效果不佳。在更改并保存实例后,该值保持不变。

请告知我可能应该进行哪些更改,以使coerce=bool正常工作。

1 个答案:

答案 0 :(得分:1)

尝试并指定不需要bool_field,就像这样:

bool_field = forms.ChoiceField(choices=bool_choices, required=False)