【发布时间】:2021-08-09 02:45:12
【问题描述】:
现在我可以成功地退回每篇文章而没有问题。 但我想做的是: 我想返回文章,后面只有当前经过身份验证的用户。我该怎么做?
models.py
class User(AbstractUser,PermissionsMixin):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
email = models.CharField(max_length=255,unique=True)
username =models.CharField(max_length=80,unique=True,default='undefinedusername')
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
class Meta:
verbose_name = _('user')
verbose_name_plural = _('users')
class Article(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='articles')
caption = models.CharField(max_length=250)
class UserFollow(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='following')
profile = models.ForeignKey(User,on_delete=models.CASCADE,related_name='followers')
serializers.py
class UserSerializer(DynamicFieldsMixin,serializers.ModelSerializer):
userfollowers_set = UserFollowSerializer(source='followers',required=False,many=True)
userfollowing_set = UserFollowSerializer(source='following',required=False,many=True)
class Meta:
model = User
fields = ('id','email','username','userfollowing_set','userfollowers_set')
views.py
class ArticleViewSet(viewsets.ModelViewSet):
permission_classes = (IsAuthenticated,)
queryset = Article.objects.all().order_by('-timestamp')
serializer_class = ArticleSerializer
错误 1:
class FollowedAuthorFilterBackend(filters.BaseFilterBackend):
NameError: name 'filters' is not defined
【问题讨论】:
标签: django django-rest-framework