Frage

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)

War es hilfreich?

Lösung

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top