запись django запрашивает и получает связанные с реверсом объекты в одном хите базы данных!

я записал эти модели в models.py:

class User(models.Model):
    first_name = models.CharField(max_length=80)

class Skill(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=80)
    level = models.IntegerField(default=3)

class Work(models.Model):
    user = models.Foriegnkey(User)
    work_name = models.CharField(max_length=80)
    salary = models.IntegerField()

теперь я хочу получить те Работы от базы данных, которая их пользователи имеют определенный навык и представляют HTML с ними. я пишу этот код в views.py:

def show_works(request, skill):
    works = Work.objects.select_related().filter(user__skill__title=skill)
    return render_to_response("works.html", {'works':works})

но существует другая вещь, которую я хочу показать в том HTML: я хочу показать first_name пользователя той работы и его навыков. я использовал select_related (), но я могу только показать first_name, но я не могу достигнуть навыков пользователя.

я хочу записать оптимальный запрос для получения работ и другой дополнительной информации, как пользователь и навыки его пользователь! как удар кода: (я не хочу поражать базу данных для каждой работы для получения навыков ее пользователя),

шаблон works.html:

{% for work in works %}
    
        {{work.work_name}}
        user is : {{work.user.first_name}}
        which has these skills:
        {% for skill in work.user.skill %}
             {{skill.title}} 
        {% endfor %}
    
{% endfor %}
5
задан Mehran 27 July 2010 в 22:31
поделиться