BTC
BTC

Reputation: 4072

Returning more than one field from Django model

How would one go about returning more than one field from a Django model declaration?

For instance: I have defined:

class C_I(models.Model):
    c_id = models.CharField('c_id', max_length=12)
    name = models.CharField('name', max_length=100)
    def __str__(self):
        return '%s' % (self.name)

which I can use, when called in a views.py function to return

    {{ c_index }}

        {% for c in c_index %}

            <div class='c-index-item' c-id=''>

                <p>{{ c.name }}</p>

            </div>

        {% endfor %}

from a template. This is being called in my views.py like so:

c_index = C_I.objects.all()

t = get_template('index.html')

c  = Context({'c_index': c_index})

html = t.render(c)

How would I also include the c_id defined in the model above, so that I can include {{c.name}} and {{c.c_id}} in my template? When I remove the str method, I appear to get all of the results, however, it just returns blank entries in the template and will not let me reference the individual components of the object.

Upvotes: 1

Views: 695

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599956

What you have is fine. Your template should be:

    {% for c in c_index %}
        <div class='c-index-item' c-id='{{ c.c_id }}'>
            <p>{{ c.name }}</p>
        </div>
    {% endfor %}

Upvotes: 1

Related Questions