в django html подробно шаблон почему .all работает, но .all () выдает ошибку?

Вы можете использовать красноречивое отношение ManyToMany для извлечения данных между User и Profession моделью. И для этого вы должны определить его так:

Пользовательская модель

public function professions()
{
    return $this->belongsToMany('App\Profession','user_profesions');
}

Профессия Модель

public function users()
{
    return $this->belongsToMany('App\User','user_profesions');
}

Теперь выберете ее так же, как в контроллере

$mentors = User::with('professions')->where('user_group', 2)->get();
return view('mentors.list-of-mentors')->with('mentors',$mentors); 

В поле зрения вы можете использовать его следующим образом

@foreach($mentors as $mentor)
      {{$mentor->first_name}}
      @foreach($mentor->professions as $profession)
           {{$profession}}
      @endforeach
@endforeach

Проверить здесь https://laravel.com/docs/5.6/eloquent-relationships#many-to -many

0
задан Padoga 20 January 2019 в 00:28
поделиться

1 ответ

Шаблоны Django имеют специальный синтаксис. Это частично сделано для того, чтобы люди не могли писать бизнес-логику в шаблонах. Например, не просто вызвать функцию с аргументами. Для этого можно использовать всевозможные «трюки », такие как настраиваемые теги шаблонов, настраиваемые фильтры шаблонов и т. Д. Но идея состоит в том, чтобы препятствовать этому и перенести такую ​​логику в само представление.

Если вы напишите переменную, то Django разрешит эту переменную, посмотрев, есть ли переменная с этим именем в контексте, и для последовательности с точками, он будет искать атрибуты, элементы и т. Д. С этим именем, чтобы разрешить «цепочку».

Если один из этих элементов может быть вызван, шаблонизатор Django вызовет их, как написано в документации :

Если переменная преобразуется в вызываемый , система шаблонов будет вызывать его без аргументов и использовать его результат вместо вызываемого.

Jinja , еще один шаблонизатор, однако позволяет писать выражения в стиле Python. Например, в дзиндзя можно написать:

<!-- Not in Django templates, but in Jinja templates -->
{{ foo.bar(qux) }}
0
ответ дан Willem Van Onsem 20 January 2019 в 00:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: