amit_183
amit_183

Reputation: 981

Accessing individual form fields in Django template

I want to access the individual element of the form... here is the code:

Models.py

class GatewayDetails(models.Model):
    gateway_id = models.IntegerField(primary_key=True)
    gateway_name = models.CharField(max_length=256L)
    class Meta:
        db_table = 'gateway_details'

class GatewayParameters(models.Model):
   gateway = models.ForeignKey(GatewayDetails)
   id=models.IntegerField(primary_key=True)
   gateway_param1 = models.CharField(max_length=256L)
   gateway_param2 = models.CharField(max_length=256L)
   gateway_param3 = models.CharField(max_length=256L)
   gateway_param4 = models.CharField(max_length=256L)
   gateway_param5 = models.CharField(max_length=256L)
   gateway_param6 = models.CharField(max_length=256L)
   gateway_param7 = models.CharField(max_length=256L)
   gateway_param8 = models.CharField(max_length=256L)
   gateway_param9 = models.CharField(max_length=256L)
   class Meta:
      db_table = 'gateway_parameters'

views.py

  if request.method=="POST":
        add_gateway_details_form=Add_Gateway_Details(request.POST)
        if add_gateway_form.is_valid():
        success=True          
        else:
        add_gateway_details_form=Add_Gateway_Details()
else:
    add_gateway_details_form=Add_Gateway_Details()
    add_gateway_parameters_form=Add_Gateway_Parameters()

forms.py

class Add_Gateway_Details(forms.ModelForm):
class Meta:
     model=GatewayDetails
    exclude=('gateway_id',)
class Add_Gateway_Parameters(forms.ModelForm):
class Meta:
    model=GatewayParameters
    exclude=('gateway',)

html:

 <form action="." method="POST">
            {{ add_gateway_details_form.as_p}}
            {{ add_gateway_parameters_form.as_p }}

            <input type="submit" value="send">
 </form>

I want to access individual elements of the form (eg: gateway_name,gateway_param1) not the whole form as in the case with add_gateway_details_form.as_p or add_gateway_parameters_form.as_p

any help..

Upvotes: 6

Views: 12869

Answers (2)

Sławomir Lenart
Sławomir Lenart

Reputation: 8397

Actually, outside the form you probably need this:

{{some_form.some_field.value}}

Upvotes: 3

Simeon Visser
Simeon Visser

Reputation: 122516

You can do:

{% for form_field in add_gateway_details_form %}
    {{ form_field }}
{% endfor %}

You can also access a field like:

{{ add_gateway_details_form.gateway_name }}

This is explained in detail in the documentation on forms and templates.

Upvotes: 8

Related Questions