У меня есть разные модели django , которые идентичны, например,
- ItemCategory
- InventoryCategory
- MenuCategory
- ExpenseCategory
Все эти модели имеют одинаковые атрибуты.
Я хочу использовать одну html-страницу , которая category_list.html , для отображения этих моделей в виде списка. Я не хочу использовать разные страницы, такие как item_category_list.html , ventroy_category_list.html , menu_category_list.html и так далее. Каждая страница содержит заголовок страницы , который является фактическим видом заголовка страницы, представленным в теге h1 . Я хочу изменить по отношению к загруженной в настоящее время странице.
Примечание: Я использую Универсальные представления для перечисления элементов, и в настоящее время я использую контекст для определения того, какое представление отправляет ответ.
Буду признателен за любую помощь.
views.py
class ItemCategoryList(ListView):
model = ItemCategory
template_name = 'app/category_list.html'
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super().get_context_data(**kwargs)
# Add in a QuerySet of all the books
context['page'] = 'Item'
return context
class InventoryCategoryList(ListView):
model = InventoryCategory
template_name = 'app/category_list.html'
class ExpenseCategoryList(ListView):
model = ExpenseCategory
template_name = 'app/category_list.html'
models.py
class ItemCategory(models.Model):
name = models.CharField(max_length=30)
description = models.CharField(max_length=300, null=True, blank=True)
image = models.ImageField(upload_to="uploads/item_categories/", null=True, blank=True)
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
class InventoryCategory(models.Model):
name = models.CharField(max_length=30)
description = models.CharField(max_length=300, null=True, blank=True)
image = models.ImageField(upload_to="uploads/inventory_categories/", null=True, blank=True)
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
class ExpenseCategory(models.Model):
name = models.CharField(max_length=30)
description = models.CharField(max_length=300, null=True, blank=True)
image = models.ImageField(upload_to="uploads/expense_categories/", null=True, blank=True)
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)