Reputation: 11
I'm new in django. I want to create several sub-categories with django-mptt, and on the Django management page, when creating a product, the main categories will be searched first, then searched subcategories under selected main category, and so on. Like a tree, at each step, according to the selected node, the child nodes are searched. Photo description My problem is I don't know how to get selected item then filter search fields from category model.
in models.py my app
from mptt.models import MPTTModel, TreeForeignKey
class Movie(models.Model):
title = models.CharField(max_length=255)
genre = models.ManyToManyField("Genre")
def __str__(self):
return self.title
class Genre(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey("self", on_delete=models.CASCADE, null=True, blank=True, related_name="children")
class MPTTMeta:
order_insertion_by = ["name"]
def __str__(self):
return self.name
and in admin.py my app
from mptt.admin import DraggableMPTTAdmin
@admin.register(Genre)
class AdminGenre(DraggableMPTTAdmin):
list_display = ["tree_actions", "indented_title"]
list_display_links = ["indented_title"]
search_fields = ["name__istartswith"]
def get_search_results(self, request, queryset, search_term):
# return super().get_search_results(request, queryset.get_descendants(), search_term)
return super().get_search_results(request, queryset, search_term)
@admin.register(Movie)
class AdminMovie(admin.ModelAdmin):
autocomplete_fields = ["genre"]
How can get selected item from django admin in create page. Just search on rock's children
Upvotes: 1
Views: 113