按UUID过滤时出现验证错误Django

ia2d9nvy  于 2022-11-26  发布在  Go
关注(0)|答案(1)|浏览(110)

我试图返回某个用户的朋友的所有朋友,该用户是该关系的作者。
但是,我不断收到此错误:
验证位于/author/posts的错误[""[UUID('8 c 02 a503 -7784- 42 f0-a367- 1876 bbfad 6 ff')]”不是有效的UUID。"]

class Author(AbstractUser):
    ...
    uuid = models.UUIDField(primary_key=True, default=uuid4, editable=False, unique=True)
    ...

class Post(models.Model):
    ...
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    ...

class Friend(models.Model):
    class Meta:
        unique_together = (('author','friend'),)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='author')
    friend = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='friend')

特别是foaf行是错误的来源。我还能怎么做呢?

friends = Friend.objects.filter(author=userUUID)
foafs = Friend.objects.filter(friend=[friend.friend.uuid for friend in friends])
hgb9j2n6

hgb9j2n61#

我认为有两件事需要解决:
1.查找应为{\f3 friend__in},因为您正在传递一个{\f3 UUID}列表。
1.您需要使用friend.friend.uuid)UUID对象转换为字符串
建议的解决方案如下:

foafs = Friend.objects.filter(friend__in=[str(friend.friend.uuid) for friend in friends])

相关问题