This commit is contained in:
2024-04-12 10:12:56 +03:00
commit 049f11f557
26 changed files with 608 additions and 0 deletions
View File
+7
View File
@@ -0,0 +1,7 @@
from django.contrib import admin
from .models import MenuItem
class MenuItemAdmin(admin.ModelAdmin):
list_display = ('title', 'parent', 'url')
admin.site.register(MenuItem, MenuItemAdmin)
+6
View File
@@ -0,0 +1,6 @@
from django.apps import AppConfig
class MenuConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'menu'
+10
View File
@@ -0,0 +1,10 @@
from django.db import models
class MenuItem(models.Model):
title = models.CharField(max_length=100)
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
url = models.CharField(max_length=100, null=True, blank=True)
def __str__(self):
return self.title
+12
View File
@@ -0,0 +1,12 @@
from django import template
from menu.models import MenuItem
register = template.Library()
@register.simple_tag(takes_context=True)
def draw_menu(context, menu_name):
menu_items = MenuItem.objects.filter(title=menu_name).select_related('parent').prefetch_related('children')
return {
'menu_items': menu_items,
'current_url': context['request'].path,
}
+3
View File
@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.
+6
View File
@@ -0,0 +1,6 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
+9
View File
@@ -0,0 +1,9 @@
from django.shortcuts import render
from .models import MenuItem
def index(request):
menu_items = MenuItem.objects.all()
context = {
'menu_items': menu_items,
}
return render(request, 'base.html', context)