On 20/02/2018 11:16 AM, Mike Dewhirst wrote:
Here is an example of get_choices() output ... it comes from a method on the Question model.

 [('A', 'A - Once?'), ('B', 'B - Twice?'), ('C', 'C - Four times?'), ('D', 'D - Twelve times?'), ('E', 'E - Continously as changes are made?')]

It is available before the the answer form is instantiated ...

class AnswerSingleForm(forms.ModelForm):

    class Meta:
        model = Answer
        fields = [
            'answer',
            'score'
        ]


This is my new form which seems to work ...

class AnswerSingleForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):

        super(AnswerSingleForm, self).__init__(*args, **kwargs)

        answer = kwargs['instance']

        choices = answer.question.get_choices()

        if len(choices) > 0:

            self.fields['answer'] = forms.ChoiceField(

                choices=choices

            )

    class Meta:

        model = Answer

        fields = [

            'answer',

            'score'

        ]









So how do I get that set of choices into the Answer form?

I can see from the docs that the form Meta class can have a widgets attribute for the 'answer' field. I think I need a ChoiceField widget so I can include the choices. I tried using __init__() in the form class to get the choices on board at instantiation but still couldn't get it going because class Meta doesn't see 'self'.

Thanks for any help

Stumped


--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/8a7fbe08-214e-745e-15ee-89303ea7a774%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.

Reply via email to