Dynamically set the placeholder for Django Form fields
Consider, we have an employee form and we want to have placeholders for form inputs so after we rendered our form we can get amazing input labels. How can we achieve this?
Say our employee form has model with fields like employee_name, date_of_joining, mobile_number and email. To edit the widget attributes we can use following code template:
self.fields['field_name'].widget.attrs['attribute_name'] = field_value
here, field_name is the name of our form field, attribute_name is the property of that field (in this case it will be ‘placeholder’) and field_value is the value which we are going to assign. To make the changes we need to add placeholder attribute in our form class constructor.
There are two ways with which we can assign the placeholder value.
- Using Static value:
2. Dynamically set the placeholder value:
This is generally helpful when we have lots of field which we need to display in the form and with this our code is more in readable format. If you render the form you will see the placeholder for inputs.
Now that you have a placeholder for your fields and if you don’t want to display label for fields then simply add below code at the bottom of for loop.
self.fields[field_name].label = ''
Hope this was helpful 😊