У меня есть модель под названием «следование», где один пользователь может следовать за другим, используя Django каркас отдыха. Я пытаюсь реализовать проверку, чтобы вы не могли следовать за кем-то дважды, и пробую встроенный UniqueTogetherValidator.
Вот соответствующие части моих models.py
class Following(models.Model):
user = models.ForeignKey('User', related_name='user', on_delete=models.CASCADE)
follower = models.ForeignKey('User', related_name='follower', on_delete=models.CASCADE)
И serializers.py:
class FollowingSerializer(serializers.HyperlinkedModelSerializer):
user = serializers.CharField(source='user.username')
follower = serializers.CharField(source='follower.username')
class Meta:
model = Following
fields = ['user', 'follower']
validators = UniqueTogetherValidator(
queryset = Following.objects.all(),
fields = ['user', 'follower'],
message = "You are already following that person!"
)
У меня есть некоторые существующие данные:
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"user": "mike",
"follower": "chelsea"
},
{
"user": "mike",
"follower": "chloe"
}
]
}
Когда я пытаюсь добавить любой новый следующий объект, используя интерфейс API, я получаю эту ошибку:
TypeError at /followings/
'UniqueTogetherValidator' object is not iterable
Request Method: POST
Request URL: http://127.0.0.1:8000/followings/
Django Version: 3.0.5
Exception Type: TypeError
Exception Value:
'UniqueTogetherValidator' object is not iterable
...
Где я go ошибся? Заранее спасибо!