[英]check if object in ManyToMany field django rest framework
這是我的models.py:
class Post(models.Model):
id = models.AutoField(primary_key=True)
body = models.TextField(max_length=10000)
date = models.DateTimeField(auto_now_add=True, blank=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
liked_by = models.ManyToManyField(User, blank=True, related_name='liked_by')
class Meta:
ordering = ['-date']
序列化程序.py:
class PostSerializer(serializers.ModelSerializer):
user = UserSerializers()
total_likes = serializers.SerializerMethodField()
total_comments = serializers.SerializerMethodField()
class Meta:
model = Post
fields = ('id','body','date','user','total_likes','total_comments')
def get_total_likes(self, instance):
return instance.liked_by.count()
def get_total_comments(self, instance):
return instance.comment_set.count()
Q1:如何檢查單個帖子的ManyToManyField中是否存在用戶?
Q2:我不應該在 drf 中使用 ManyToManyField 嗎? 那么哪個會更好?
我沒有足夠的代表發表評論,但如果您有一個post
實例和一個user
實例,您可以執行以下操作:
post.liked_by.filter(id=user.id).exists()
這對你有幫助還是你在問你應該在哪里實施這個? 例如在您的視圖或序列化程序等...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.