S F
S F

Reputation: 11

How can get selected item from auto fields on many to many relationship (django Admin Model)

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

Answers (0)

Related Questions