[Fixed]-How to set SlugRelated field to a field within an object field

1👍

You are modelling a Many-to-Many relationship between Categorys and Conversations with a explicit table called Prediction. The django way of doing this would be to explicitly state the Many-to-Many on either side of the relationship and specify Prediction as the “through-model”:

Shamelessly stolen example from this question:

class Category(models.Model):
    name = models.CharField(max_length=255)
    slug = models.SlugField(unique=True, max_length=255, blank=True,default=None)
    desc = models.TextField(blank=True, null=True )

    ...

class Post(models.Model):
   title = models.CharField(max_length=255)
   pub_date = models.DateTimeField(editable=False,blank=True)
   author = models.ForeignKey(User, null=True, blank=True)
   categories = models.ManyToManyField(Category, blank=True, through='CatToPost')

   ...


class CatToPost(models.Model):
    post = models.ForeignKey(Post)
    category = models.ForeignKey(Category)

    ...

This shows a good way to set up the relationship.

Equally shamelessly stolen from the answer by @Amir Masnouri:

class CategorySerializer(serializers.ModelSerializer):
      class Meta:
            model = Category
            fields = ('name','slug')

class PostSerializer(serializers.ModelSerializer):

      class Meta:
            model = Post  
            fields = ('id','{anything you want}','categories')
            depth = 2

This shows a nice way of achieving the nested serialization behavior that you would like.

Leave a comment