Friday 15 May 2015

python - Combine two ModelForm fields in Django -



python - Combine two ModelForm fields in Django -

i have model boolean field , foreign key

class modela(models.model): is_anonymous = booleanfield(default=false) page = foreignkey(modelb, null=true)

i want combine these 2 fields in select field.

it should have alternative <option value="anonymous">anonymous</option> , alternative each object in modelb.

so if page selected in <select> field is_anonymous should false , if anonymous selected field page should null , is_anonymous should true.

i think have add together queryset modelb.objects.all() selection list in

self.fields['field_name'].widget = forms.select(choices=[(false, "not anonymous"), (true, "anonymous"),])

but save result field field_name wrong.

there's no need combine fields here. can set empty_value foreign key field 'anonymous', , deal in clean method.

class modelaform(forms.modelform): page = forms.modelchoicefield(queryset=modelb.objects.all(), empty_value="anonymous") class meta: model = modelb def clean(self): if not self.cleaned_data['page']: self.cleaned_data['anonymous'] = true

python django django-models django-forms django-views

No comments:

Post a Comment