Python 如何在django中过滤具有多对多关系的对象
我是Django的新手,我正在尝试发现多对多的关系 我有一个与默认用户模型有多对多关系的word模型:Python 如何在django中过滤具有多对多关系的对象,python,django,database,Python,Django,Database,我是Django的新手,我正在尝试发现多对多的关系 我有一个与默认用户模型有多对多关系的word模型: 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)
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] + "..."
我有一个属于两个用户的示例word对象,我只希望这两个用户在他们的feedpage上看到这个word对象。我应该如何更正下面的查看功能
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})
基本上,我想检查word对象的用户列表是否包含authourized user,如果包含,则word将从数据库中获取。我该如何编写此代码?我认为您应该能够做到这一点
words = Word.objects.filter(users=user)
要检查多个用户,您可以执行以下操作
words = Word.objects.filter(users__in=[user1,user2])
请看下面的示例