Присоединение к нескольким моделям Django - PullRequest
0 голосов
/ 05 июня 2018

У меня есть три модели Django, связанные ограничением внешнего ключа, и у них всех есть данные.Как мне объединить их все вместе и отобразить данные в моем шаблоне?(что-то похожее на INNER JOIN в SQL).

Представление:

def seeAllData(request):
template = loader.get_template('seeAllData.html')
context = {
    'From1' : Form1(),
    'Form2' : Form2(),
    'Form3' : Form3(),
}

return HttpResponse(template.render(context, request))

Кроме того, когда я пробую описанный выше подход, я получаю некоторые текстовые поля в форме, а не данные,(Я хочу показать данные в формате сетки).

Заранее спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

Вам нужно привязать свои формы к экземплярам модели, если вы хотите, чтобы данные были загружены.

Это может выглядеть так (зависит от того, как структурированы ваши модели, вы не показываливаши модели, чтобы я мог только что-то придумать):

from django.shortcuts import render, get_object_or_404

def see_all_data(request):
    m1 = get_object_or_404(Model1, pk=1)
    ctx = {
        'From1' : Form1(instance=m1),
        'Form2' : Form2(instance=m1.model2_instance),
        'Form3' : Form3(instance=m1.model3_instance),
    }
    return render(request, 'seeAllData.html', ctx)

ВНИМАНИЕ: использование аргумента instance= предполагает, что вы используете ModelForms.

...