gpt4 book ai didi

python - 如何在 Django 中过滤具有多对多关系的对象

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:44 25 4
gpt4 key购买 nike

我是 Django 的新手,我正在尝试发现多对多关系。

我有一个与默认用户模型有多对多关系的词模型:

from django.db import models
from django.contrib.auth.models import User

class Word(models.Model):
definition = models.CharField(max_length=350)
turkish = models.CharField(max_length=50)
english = models.CharField(max_length=50)
users = models.ManyToManyField(User)

def __str__(self):
return self.english

def summary(self):
return self.definition[:50] + "..."

我有一个属于两个用户的示例词对象,我只希望这两个用户在他们的提要页面上看到这个词对象。下面的 View 函数应该如何修正?

from django.shortcuts import render
from django.contrib.auth.models import User

@login_required
def home(request):
user = request.user
small = user.username.title()
words = Word.objects.filter(??????) #order_by('-english')
return render(request, 'intro.html', {'words': words, 'small' : small})

基本上,我想检查一个单词对象的用户列表是否包含授权用户,如果包含,该单词将从数据库中取出。我该如何编码?

最佳答案

我认为你应该能够做到

words = Word.objects.filter(users=user)

要检查多个用户,您可以执行以下操作

words = Word.objects.filter(users__in=[user1,user2])

看看 docs例如。

关于python - 如何在 Django 中过滤具有多对多关系的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43380001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com