问题是,有两个模型彼此不相关。这是models.py中的两个模型
class Item(models.Model):
name = models.CharField(max_length=250, default="", verbose_name=_("Название работы"))
slug = models.SlugField(max_length=250, default="", verbose_name=_("URL"))
in_category = models.ForeignKey(Category, default="", verbose_name=_("Категория"))
item_type = models.ForeignKey(ItemType, verbose_name=_("Тип Элемента"))
description = models.TextField(_('Описание'), null=True, blank=True)
images = models.ManyToManyField(Images, blank=True, verbose_name=_("Изображения"))
sort = models.IntegerField(default="0", verbose_name=_("Сортировка"))
is_active = models.BooleanField(default="True", verbose_name=_("Активно?"))
date_pub = models.DateField(auto_now_add=True, blank=True, verbose_name=_("Дата добавления"))
date_upd = models.DateTimeField(auto_now_add=False, auto_now=True, verbose_name=_("Дата редактирования"))
def __str__(self):
return self.name
def get_absolute_url(self):
return "/portfolio/items/%s/" % self.slug
def get_category_url(self):
return "/portfolio/category/%s/" % self.in_category.slug
class Meta:
verbose_name = 'Элемент'
verbose_name_plural = 'Элементы'
class Settings(models.Model):
name = models.CharField(max_length=250, default="", verbose_name=_("Наименование"))
category_type = models.ForeignKey(CategoryType, verbose_name=_("Тип категория"))
sort = models.IntegerField(default="0", verbose_name=_("Сортировка"))
is_active = models.BooleanField(default="True", verbose_name=_("Активно?"))
date_pub = models.DateField(auto_now_add=True, blank=True, verbose_name=_("Дата добавления"))
date_upd = models.DateTimeField(auto_now_add=False, auto_now=True, verbose_name=_("Дата редактирования"))
def __str__(self):
return self.name
class Meta:
verbose_name = 'Настройка'
verbose_name_plural = 'Настройки'
这是views.py中的类
class ItemList(ListView):
model = Item
template_name = 'itm_portfolio/main.html'
一般来说,实际的问题是,除了来自 Item 模型的数据之外,如何在 main.html 模板中显示来自 Settings 模型的数据?
解决方案非常简单:views.py
接下来,在 main.html 中,我们显示来自 Settings 模型的数据:
你可以不用
get_context_data.在这样的模板调用中: