簡體   English   中英

檢查 object 是否在多對多字段 django rest 框架中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM