Django / Laravel Blade - отправка данных из 1 модуля в 2 разных шаблона лезвия
У меня есть раздел блога, созданный в django, который использует файлы шаблона blade для отображения на переднем плане.
Это позволяет пользователю добавить содержание блога и установить функцию featured (да/нет), которая будет отображать "featured blog" первым на странице блога.
Я пытаюсь создать отдельный модуль для включения на главной странице, который будет захватывать первые 2 'featured' блога.
У меня это есть в файле models.py.
class New(models.Model):
IS_FEATURED = (
(0, "No"),
(1, "Yes")
)
IS_POPULAR = (
(0, "No"),
(1, "Yes")
)
title = models.CharField(max_length=200, null=False, verbose_name='Title')
slug = models.CharField(max_length=255, null=False, unique=True, verbose_name='Slug')
keywords = models.CharField(max_length=300, blank=True, default="")
description = models.CharField(max_length=300, blank=True, default="")
genre = models.CharField(max_length=100, blank=True, default="")
is_featured = models.IntegerField(choices=IS_FEATURED, default=0, null=False)
is_popular = models.IntegerField(choices=IS_POPULAR, default=0, null=False)
custom_meta_copy = models.TextField(blank=True, default="", help_text="Will be rendered inside head tag")
og_title = models.CharField(max_length=300, blank=True, default="")
og_description = models.CharField(max_length=300, blank=True, default="")
og_image = models.FileField(upload_to='social/', blank=True, default="")
twitter_title = models.CharField(max_length=300, blank=True, default="")
twitter_description = models.CharField(max_length=300, blank=True, default="")
twitter_image = models.FileField(upload_to='social/', blank=True, default="")
intro_copy = models.CharField(max_length=200, null=False)
content_copy = models.TextField(null=True, default="")
image = models.FileField(upload_to=get_news_upload_path, blank=True, verbose_name="image", default="", help_text="Recommended: 1140x600")
image_alt_text = models.CharField(max_length=300, blank=True, default="")
published_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
class Meta:
verbose_name = "New"
verbose_name_plural = "News"
У меня есть файл blade с именем news.blade.php, который использует эту информацию для отображения различных блогов.
Это создает раздел блога "featured", но он размещается на отдельной странице, а не в другом модуле.
@if($page ?? ''["featuredNew"])
<div class="col-md-7">
<div class="card mb-3">
<div class="row no-gutters">
<div class="col-md-7">
<a href="{{Helper::url_with_query_params(route("news.details",$page ?? ''["featuredNew"]->slug))}}">
<img src="{{Helper::absoluteImagePath($page ?? ''["featuredNew"]->image)}}"
class="card-img"
alt="{{$page ?? ''["featuredNew"]->image_alt_text}}">
@if($page ?? ''["featuredNew"]->genre)
<span class="new-genre">{{$page ?? ''["featuredNew"]->genre}}</span>
@endif
</a>
</div>
<div class="col-md-5">
<div class="card-body">
<a href="{{Helper::url_with_query_params(route("news.details",$page ?? ''["featuredNew"]->slug))}}">
<h5 class="card-title font-semibold">{{$page ?? ''["featuredNew"]->title}}</h5>
</a>
<p class="card-time-label"><small
class="text-muted font-semibold">{{Helper::getFormattedTime($page ?? ''["featuredNew"]->published_at)}}</small>
</p>
<p class="card-text my-4">{{$page ?? ''["featuredNew"]->intro_copy}}</p>
<a class="btn btn-link text-gradient btn-lg font-bold ml-lg-5"
href="{{Helper::url_with_query_params(route("news.details",$page ?? ''["featuredNew"]->slug))}}">Continue
reading
<em class="fas fa-angle-right"></em></a>
</div>
</div>
</div>
</div>
</div>
@endif
Возможно ли использовать это в файле blade модуля, чтобы я мог включить это содержимое на главной странице, а не на странице 'blog'? Если кто-то может указать мне правильное направление, это было бы здорово.