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.