0

I am trying to create hierarchical tags for my Django blog project using django-taggit and django-treebeard. However, I am encountering issues with the creation of the relational tables.

Here is my models.py file:

from django.db import models
from django.contrib.auth.models import User
from django.template.defaultfilters import slugify

from taggit.models import TagBase, ItemBase
from taggit.managers import TaggableManager

from treebeard.mp_tree import MP_Node

class Tag(TagBase, MP_Node):
    name = models.CharField(max_length=10, unique=True)
    parent = models.ForeignKey('self', null=True, blank=True, on_delete=models.CASCADE)

    node_order_by = ['name']

class TaggedPost(ItemBase):
    post = models.ForeignKey('Post', on_delete=models.CASCADE)
    tag = models.ForeignKey('Tag', related_name="tagged_posts", on_delete=models.CASCADE)
    
    class Meta:
        unique_together = ('post', 'tag')

    def __str__(self):
        return self.tag.name


class Post(ItemBase):
    title = models.CharField(max_length=125, unique=True)
    slug_title = models.SlugField(max_length=255, unique=True)
    summary = models.TextField(max_length=100)
    body = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    status = models.BooleanField(default=True)

    tags = TaggableManager(through='TaggedPost')

    class Meta:
        ordering = ['-published_date']

    def __str__(self):
        return self.title
    
    def save(self, *args, **kwargs):
        self.slug_title = slugify(self.title)
        super(Post, self).save(*args, **kwargs)

I ran python manage.py makemigrations and python manage.py migrate successfully, but the relational tables (blog_tag and blog_taggedpost) are not being created.

When I try to create a new tag using Tag.objects.create(name='Parent Tag'), I receive the following error:

django.db.utils.ProgrammingError: relation "blog_tag" does not exist

I am not sure why the tables are not being created and how to resolve this issue. Any help would be greatly appreciated!

0 Answers0