Domanda

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)

È stato utile?

Soluzione

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top