2
class Test(models.Model):
    name = models.CharField(max_length=60)
    address = models.CharField(max_length ==200)    

class TestForm(ModelForm):
    class Meta:
        model = Test

そして私の見解では、私は以下を使用します:

frm= TestForm(request.POST,instance=test)
if frm.is_valid():
    frm.save()

モデルに複数のチェックボックス値を追加する必要があります。

APPROVAL_CHOICES = (
    ('yes', 'Yes'),
    ('no', 'No'),
    ('cancelled', 'Cancelled'),
)

checkbox_value = models.CharField(max_length = 250)

checkbox_value = models.CharField(choices=APPROVAL_CHOICES)条件によってはApproval_choiceタプルが変更されるため、モデルでは使用していません。

では、モデルフォームでチェックボックスを使用するにはどうすればよいですか?カスタムフォームを作成すると役に立ちますか?

ありがとう。

4

1 に答える 1

3

選択肢を指定せずに、checkbox_value をモデルに追加できます。しかし、代わりにAPPROVAL_CHOICESフォームで決定してください。

APPROVAL_CHOICES = (
    ('yes', 'Yes'),
    ('no', 'No'),
    ('cancelled', 'Cancelled'),
)

class Test(models.Model):
    name = models.CharField(max_length=60)
    address = models.CharField(max_length=200)
    checkbox_value = models.CharField(max_length=250)

class TestForm(ModelForm):
    checkbox_value = forms.ChoiceField()

    class Meta:
        model = Test

    def __init__(self, *args, **kwargs):
        super(TestForm, self).__init__(*args, **kwargs)

        # add your relevant conditions that determines the approval choice
        # if you want to be able to modift the APPROVAL_CHOICES, change it 
        # to a list rather than a tuple
        # else
        approval_choices = APPROVAL_CHOICES

        self.fields['checkbox_value'].choices = approval_choices
于 2012-09-22T13:56:00.147 に答える