You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
can you suggest how to handle manytomany relationship
I have the following models
#this model can be associated with more than 1 post
class Category(models.Model):
title = models.CharField(max_length=255,unique=True, blank=False, null=False)
#this model can be associated with more than 1 category
class Post(models.Model):
# post title
title = models.CharField(max_length=255, null=False)
content = models.TextField(null = False, max_length=12000)
slug = models.CharField(max_length=255, null=False, unique=True)
categories = models.ManyToManyField(Category, related_name='categories')
Can you please advise how to write a serializer that posts new data.
class PostCategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
read_only_fields = ('id',)
exclude = ('title','created_by')
class Meta:
model = Post
fields = ('title', 'content', 'slug', 'categories', 'created_by_id')
def create(self, validated_data):
#before saving the post remove the field categories to avoid errors
categories = validated_data.pop('categories')
post = Post.objects.create(**validated_data)
for cat in categories:
Category.objects.create(**cat, categories=post)
return post
When I make the api request the post is created in the database but the categories are not associated
curl -H "Authorization: Bearer HKAEKzMg278hjsMVYYPlCdq6OqFA21" -X POST -H 'Content-Type: application/json' -d '{"title":"My first post","content":"My first post", "slug":"my-first-post", "short_description":"my first post....", "categories":[{"id":2, "title":"Python"}], "created_by":"2", "created_by_id":"2"}' http://localhost:8000/api/v1/posts/
The text was updated successfully, but these errors were encountered:
Hi,
can you suggest how to handle manytomany relationship
I have the following models
#this model can be associated with more than 1 post
class Category(models.Model):
title = models.CharField(max_length=255,unique=True, blank=False, null=False)
#this model can be associated with more than 1 category
class Post(models.Model):
# post title
title = models.CharField(max_length=255, null=False)
content = models.TextField(null = False, max_length=12000)
slug = models.CharField(max_length=255, null=False, unique=True)
categories = models.ManyToManyField(Category, related_name='categories')
Can you please advise how to write a serializer that posts new data.
class PostCategorySerializer(serializers.ModelSerializer):
class PostSerializer(serializers.ModelSerializer):
created_by_id = serializers.PrimaryKeyRelatedField(
queryset=User.objects.all(), source='created_by', write_only=True, required=False)
categories = PostCategorySerializer(many=True)
When I make the api request the post is created in the database but the categories are not associated
curl -H "Authorization: Bearer HKAEKzMg278hjsMVYYPlCdq6OqFA21" -X POST -H 'Content-Type: application/json' -d '{"title":"My first post","content":"My first post", "slug":"my-first-post", "short_description":"my first post....", "categories":[{"id":2, "title":"Python"}], "created_by":"2", "created_by_id":"2"}' http://localhost:8000/api/v1/posts/
The text was updated successfully, but these errors were encountered: