from django import forms from smadrill.models import Semtype, Tag # TODO: if semtype is selected, only show tags that apply to that # semtype # TODO: if tag is selected, only show semtypes that apply def keyedTuples(queryset, key): tuplelist = [(item.id, item.__getattribute__(key)) for item in queryset] return tuplelist SEMTYPES = [('None', 'None')] + keyedTuples(Semtype.objects.all(), 'semtype') TAGS = [('None', 'None')] + keyedTuples(Tag.objects.all(), 'string') class MorfaCElement(forms.Form): wordstring = forms.CharField(required=False) tagstr = forms.ChoiceField(choices=TAGS, widget=forms.Select) semtype = forms.ChoiceField(choices=SEMTYPES, widget=forms.Select) sample = forms.CharField(required=False) additionals = forms.CharField(required=False)