2015-05-25 6 views
2

У меня есть две модели, одна связана с другой по внешнему ключу:Джанго добавление нескольких значений внешнего ключа модели

class Service(models.Model): 
    name = models.CharField(max_length=100) 

    def __str__(self): 
     return self.name 

class ServiceFile(models.Model): 
    service_file = models.CharField(max_length=100) 
    service = models.ForeignKey(Service) 

Внутри views.py, я хочу, чтобы захватить Service содержимое вместе с его многочисленными ServieFile значений (для того, чтобы передать его с контекстом в шаблон). Как я могу это сделать?

ответ

3
service = Service.objects.get(id=111) # service whose id is 111 for example 
serv_files = ServiceFile.objects.filter(service=service) 
2

Вам нужно только получить Service в вашем контексте, это даст вам доступ к ServiceFile через запрос, который вы можете сделать непосредственно в шаблоне. Например, в вашем контексте есть all_services, содержащий Service.objects.all(). Затем в шаблоне:

// iterate over each service 
{% for service in all_services %} 
    // _set.all gets all ServiceFile objects that have a 
    // specific service as foreign key. 
    {% for servicefile in service.servicefile_set.all %} 
     // You can access properties of each of these servicefiles. 
     {{ servicefile.service_file }} 
Смежные вопросы