Locations as tags in a tree structure

2 views
Skip to first unread message

Simone Nardi

unread,
Oct 5, 2025, 12:50:28 AM (7 days ago) Oct 5
to gcd-tech
Hi,
It would be really nice and useful to group keywords by purpose, like in this example — especially the locations:

What do you think, can we give it some thought?

Best,

Simone

Jochen G.

unread,
Oct 5, 2025, 5:15:21 AM (7 days ago) Oct 5
to gcd-...@googlegroups.com
The taggit-library we are using doesn't support this in-house. Means we
would need to develop everything or switch to a different library and
change our whole handling of keywords

https://djangopackages.org/grids/g/tagging/

Jochen

Am 05.10.25 um 06:50 schrieb Simone Nardi:
> Hi,
> It would be really nice and useful to group keywords by purpose, like in
> this example — especially the locations:
>
> https://dc.fandom.com/wiki/Absolute_Batman_Vol_1_11 <https://
> dc.fandom.com/wiki/Absolute_Batman_Vol_1_11>
>
> What do you think, can we give it some thought?
>
> Best,
>
> Simone
>
> --
> You received this message because you are subscribed to the Google
> Groups "gcd-tech" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to gcd-tech+u...@googlegroups.com <mailto:gcd-
> tech+uns...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/gcd-
> tech/320771fb-cc1f-4c49-8f13-341893087a8an%40googlegroups.com <https://
> groups.google.com/d/msgid/gcd-tech/320771fb-
> cc1f-4c49-8f13-341893087a8an%40googlegroups.com?
> utm_medium=email&utm_source=footer>.

Simone Nardi

unread,
Oct 5, 2025, 5:40:14 AM (7 days ago) Oct 5
to gcd-...@googlegroups.com
Hi Jochen,

I understand that taggit doesn’t support hierarchies.
One possible solution could be to layer it with django-mptt, in order to build a hybrid taxonomy on top of taggit.

This way, we can continue using taggit as a flat tagging system while adding a hierarchical level to categorize tags (locations, characters, objects, companies, etc.), making them more searchable and scalable.

1) Structure
We create a tree model (e.g. ParentTaxonomy) with django-mptt that defines the hierarchies, for example:

Locations → USA → Gotham → Batcave
Characters → Heroes → Batman Family → Robin
Objects → Vehicles → Bat-vehicles → Batmobile
Companies → Wayne Group → Wayne Enterprises → R&D

2) Mapping
The current taggit tags become the leaf nodes of this structure.

3) Search
When searching for a parent (e.g. Batman Family), the backend uses django-mptt to fetch all descendant tags (e.g. Robin, Batgirl, etc.) and passes them to taggit for querying.

This way, we keep compatibility with taggit while gaining the search flexibility we need.

What do you think?

To unsubscribe from this group and stop receiving emails from it, send an email to gcd-tech+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/gcd-tech/7de2eb7a-fbd9-4222-9fad-faf0a82adbc6%40garcke.de.


--
Simone Nardi

Il messaggio trasmesso è rivolto esclusivamente al destinatario. Tutte le informazioni ivi contenute, compresi eventuali allegati, sono da ritenere confidenziali e riservate secondo i termini del vigente D.Lgs.101/2018 in materia di privacy e del Regolamento europeo 679/2016 – GDPR-  e quindi ne è proibita l’utilizzazione ulteriore non autorizzata. Se avete ricevuto per errore questo messaggio, Vi preghiamo cortesemente di contattare immediatamente il mittente e cancellare la e-mail.

Confidentiality Notice – This e-mail message including any attachments is for the sole use of the intended recipient and may contain confidential and privileged information pursuant to Legislative Decree 101/2018 and the European General Data Protection Regulation 679/2016 – GDPR-. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.

Jochen G.

unread,
Oct 5, 2025, 5:46:38 AM (7 days ago) Oct 5
to gcd-...@googlegroups.com
I know that there are libraries that one can put on top of taggit. Still
it would mean we would need to implement everything to really use it.

At least django-mptt is currently unmaintained, so other libraries, e.g.
django-treebeard, seem more feasible.

Feel free to investigate if and how it can be done.

Jochen

Am 05.10.25 um 11:39 schrieb Simone Nardi:
> Hi Jochen,
>
> I understand that taggit doesn’t support hierarchies.
> One possible solution could be to layer it with django-mptt, in order to
> build a hybrid taxonomy on top of taggit.
>
> This way, we can continue using taggit as a flat tagging system while
> adding a hierarchical level to categorize tags (locations, characters,
> objects, companies, etc.), making them more searchable and scalable.
>
> 1) Structure
> We create a tree model (e.g. ParentTaxonomy) with django-mptt that
> defines the hierarchies, for example:
>
> Locations → USA → Gotham → Batcave
> Characters → Heroes → Batman Family → Robin
> Objects → Vehicles → Bat-vehicles → Batmobile
> Companies → Wayne Group → Wayne Enterprises → R&D
>
> 2) Mapping
> The current taggit tags become the leaf nodes of this structure.
>
> 3) Search
> When searching for a parent (e.g. Batman Family), the backend uses
> django-mptt to fetch all descendant tags (e.g. Robin, Batgirl, etc.) and
> passes them to taggit for querying.
>
> This way, we keep compatibility with taggit while gaining the search
> flexibility we need.
>
> What do you think?
>
> Il giorno dom 5 ott 2025 alle ore 11:15 'Jochen G.' via gcd-tech <gcd-
> te...@googlegroups.com <mailto:gcd-...@googlegroups.com>> ha scritto:
>
> The taggit-library we are using doesn't support this in-house. Means we
> would need to develop everything or switch to a different library and
> change our whole handling of keywords
>
> https://djangopackages.org/grids/g/tagging/ <https://
> djangopackages.org/grids/g/tagging/>
>
> Jochen
>
> Am 05.10.25 um 06:50 schrieb Simone Nardi:
> > Hi,
> > It would be really nice and useful to group keywords by purpose,
> like in
> > this example — especially the locations:
> >
> > https://dc.fandom.com/wiki/Absolute_Batman_Vol_1_11 <https://
> dc.fandom.com/wiki/Absolute_Batman_Vol_1_11> <https://
> > dc.fandom.com/wiki/Absolute_Batman_Vol_1_11 <http://
> dc.fandom.com/wiki/Absolute_Batman_Vol_1_11>>
> >
> > What do you think, can we give it some thought?
> >
> > Best,
> >
> > Simone
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "gcd-tech" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send
> > an email to gcd-tech+u...@googlegroups.com <mailto:gcd-
> tech%2Bunsu...@googlegroups.com> <mailto:gcd- <mailto:gcd->
> > tech+uns...@googlegroups.com
> <mailto:tech%2Bunsu...@googlegroups.com>>.
> > To view this discussion visit https://groups.google.com/d/msgid/
> gcd- <https://groups.google.com/d/msgid/gcd->
> > tech/320771fb-cc1f-4c49-8f13-341893087a8an%40googlegroups.com
> <http://40googlegroups.com> <https://
> > groups.google.com/d/msgid/gcd-tech/320771fb- <http://
> groups.google.com/d/msgid/gcd-tech/320771fb->
> > cc1f-4c49-8f13-341893087a8an%40googlegroups.com
> <http://40googlegroups.com>?
> > utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "gcd-tech" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to gcd-tech+u...@googlegroups.com <mailto:gcd-
> tech%2Bunsu...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/gcd-
> tech/7de2eb7a-fbd9-4222-9fad-faf0a82adbc6%40garcke.de <https://
> groups.google.com/d/msgid/gcd-tech/7de2eb7a-fbd9-4222-9fad-
> faf0a82adbc6%40garcke.de>.
>
>
>
> --
> Simone Nardi
> /
> /
>
> Il messaggio trasmesso è rivolto esclusivamente al destinatario. Tutte
> le informazioni ivi contenute, compresi eventuali allegati, sono da
> ritenere confidenziali e riservate secondo i termini del vigente
> D.Lgs.101/2018 in materia di privacy e del Regolamento europeo 679/2016
> – GDPR-  e quindi ne è proibita l’utilizzazione ulteriore non
> autorizzata. Se avete ricevuto per errore questo messaggio, Vi preghiamo
> cortesemente di contattare immediatamente il mittente e cancellare la e-
> mail.
>
> Confidentiality Notice – This e-mail message including any attachments
> is for the sole use of the intended recipient and may contain
> confidential and privileged information pursuant to Legislative Decree
> 101/2018 and the European General Data Protection Regulation 679/2016 –
> GDPR-. Any unauthorized review, use, disclosure or distribution is
> prohibited. If you are not the intended recipient, please contact the
> sender by reply e-mail and destroy all copies of the original message.
>
> --
> You received this message because you are subscribed to the Google
> Groups "gcd-tech" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to gcd-tech+u...@googlegroups.com <mailto:gcd-
> tech+uns...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/gcd-
> tech/
> CAN%2BuuQNjpvQ%2BsvdTMka8d4%3Db0pJO9WpMz0NUES_gOT2ukt533g%40mail.gmail.com <https://groups.google.com/d/msgid/gcd-tech/CAN%2BuuQNjpvQ%2BsvdTMka8d4%3Db0pJO9WpMz0NUES_gOT2ukt533g%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Reply all
Reply to author
Forward
0 new messages