On Oct 27, 5:33 am, jimgardener <jimgarde...@gmail.com> wrote:
> hi
> I have a model with 3 fields
> class Employee(models.Model):
>     name=models.CharField(max_length=50)
>     home_address=models.TextField(blank=True)
>     change_filter=models.IntegerField()
>
> I am creating a modelform using this class as model.
> class EmployeeForm(ModelForm):
>     class Meta:
>         model=Employee
>
> In my template,I want to give the IntegerField some special
> treatment ..ie,I want to render it as input type="range" instead of a
> text field.
> I can do this like,
> ...
> <p>
>  <label for="id_name">Enter name:</label>
>  {{empform.name}}
> </p>
> <p>
> {{empform.name.errors}}
> </p>
> <p>
>  <label for="id_home_address">Enter address:</label>
>  {{empform.home_address}}
> </p>
> <p>
> {{empform.home_address.errors}}
> </p>
>
> <p>
>  <label for="id_change_filter">select change filter value:</label>
>  <input type="range"
>        min="0"
>        max="1000"
>        step="2"
>        value="6" id="id_change_filter" name="change_filter"/>
> </p>
> <p>
> {{empform.change_filter.errors}}
> </p>
>
> <input type="submit" value="Submit"/>
> </form>
>
> Here ,I am using the same logic for the first two fields..
> I want to render the change_filter using an input type="render"..
> so I thought I can take care of this using a for loop.
> {% for field in empform %}
>     {% ifequal field.name "change_filter" %}
>       <p>
>            <label for="id_change_filter">select change filter value:</
> label>
>            <input type="range"
>            min="0"
>            max="1000"
>            step="2"
>            value="6" id="id_change_filter" name="change_filter"/>
>       </p>
>     {% else %}
>     <p>
>     {{ field.label_tag }}: {{ field }}
>     </p>
>     {% endifequal %}
>     {%if  field.errors %}
>         {{field.errors}}
>     {% endif %}
> {% endfor %}
>
> This gives the desired effect..But I am wondering if hardcoding the
> field's name in the ifequal tag is the correct way.Can I check the
> type of field instead?I am not sure how to do this..
> Any advice would be nice..
> thanks
> jim

Don't do this in the template. Define a custom widget for your field,
which outputs the range input. Look at the code for the standard
widgets in django.forms.widgets to see how to do it.
--
DR.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to