я написал эти модели в 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: я хочу показать имя пользователя этой работы и его навыки. я использовал select_related(), но я могу показать только first_name, но я не могу достичь навыков пользователя.
я хочу написать оптимальный запрос, чтобы получить работу и другую дополнительную информацию, такую как пользователь и навыки этого пользователя! как удар по коду: (я не хочу попадать в базу данных для каждой работы, чтобы получить навыки пользователя)
шаблон work.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 %}