Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Page(models.Model):
- name = models.CharField('Имя страницы', max_length=50)
- slug = models.SlugField()
- class Meta:
- verbose_name = 'Page'
- verbose_name_plural = 'Pages'
- def __str__(self):
- return self.name
- class Article(models.Model):
- name = models.CharField('Имя статьи', max_length=50)
- slug = models.SlugField()
- class Meta:
- verbose_name = 'Article'
- verbose_name_plural = 'Articles'
- def __str__(self):
- return self.name
- class Menu(models.Model):
- name = models.CharField('Имя меню', max_length=50)
- class Meta:
- verbose_name = 'Menu'
- verbose_name_plural = 'Menus'
- def __str__(self):
- return self.name
- class MenuItem(models.Model):
- name = models.CharField('Имя пункта меню', max_length=50)
- url = models.URLField('Ссылка пункта меню', max_length=200)
- menu = models.ForeignKey(Menu, on_delete=models.CASCADE)
- content_type = models.ForeignKey(
- ContentType, limit_choices_to={
- 'model__in': (
- 'page',
- 'article',)
- }, on_delete=models.CASCADE)
- object_id = models.PositiveIntegerField()
- obj = GenericForeignKey('content_type', 'object_id')
- class Meta:
- verbose_name = 'MenuItem'
- verbose_name_plural = 'MenuItems'
- def __str__(self):
- return self.name
- class MenuItemObjectAdminInLine(admin.StackedInline):
- model = MenuItem
- ct_field = "content_type"
- ct_fk_field = "object_id"
- extra = 0
- class MenuAdmin(admin.ModelAdmin):
- inlines = [MenuItemObjectAdminInLine]
- admin.site.register(Menu, MenuAdmin)
Add Comment
Please, Sign In to add comment