我是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] + "..."
我有一个属于两个用户的示例单词对象,我只希望这两个用户在他们的feedpage上看到这个单词对象。我该如何更正下面的视图功能?
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})
基本上,我想检查单词对象的用户列表是否包含authourized用户,如果包含,则该单词将从数据库中获取。我该如何编码?
答案 0 :(得分:4)
我认为你应该能够做到
words = Word.objects.filter(users=user)
要检查多个用户,您可以执行
之类的操作words = Word.objects.filter(users__in=[user1,user2])
请查看docs示例。