سؤال

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)

هل كانت مفيدة؟

المحلول

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top