Question

how to use foreignKey?

please help retrieve and display data using foreignKey

models.py:

class Gender(models.Model):     
    gender = models.CharField(
        max_length=10, 
        blank=False,
    )   

class UserProfile(User):
    name1 = models.CharField(
        'Имя',
        max_length=30, 
        blank=True,
        null=True,
    )
    gender = models.ForeignKey(
        Gender,
        default=0,
    )

fixtures:

[
    {
        "model": "drummersaransk.Gender",
        "pk": 1,
        "fields": {
            "gender": "none"
        }
    },
    {
        "model": "drummersaransk.Gender",
        "pk": 2,
        "fields": {
            "gender": "male"
        }
    },
    {
        "model": "drummersaransk.Gender",
        "pk": 3,
        "fields": {
        "gender": "female"
        }
    }   
]

views.py:

def user_personal(request, id):     
    entries_user_profile = UserProfile.objects.get(user_ptr_id=id)          

    t = loader.get_template('user_personal.html')
    c = RequestContext(request, {
        'entries_user_profile': entries_user_profile,
    })  
    return HttpResponse(t.render(c))

user_personal.html:

{% if entries_user_profile.gender_id %}
    <tr>
        <td class="label">Пол</td>

        <td class="gender info">{{ entries_user_profile.gender_id }}</td>
    </tr>
{% endif %}

the problem is that gender is not output value from the table Gender (none, male or female)

Was it helpful?

Solution

You outs gender.id, not gender name.

Try to replace this

<td class="gender info">{{ entries_user_profile.gender_id }}</td>

with this

<td class="gender info">{{ entries_user_profile.gender.gender }}</td>

UPDATE

Maybe choices is a better way to store users gender. Check it out: https://docs.djangoproject.com/en/dev/ref/models/fields/#choices

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top