python Django self.model.DoesNotExist

xqnpmsa8  于 2023-09-29  发布在  Python
关注(0)|答案(2)|浏览(117)

我有一个字段设置为“无”的用户:

None|Default User|07/07/2023

然而,Django出于某种原因没有看到它:

queryset=Q(id=UUID(User.objects.get(user_id=None)
...
raise self.model.DoesNotExist(pages.models.User.DoesNotExist: User matching query does not exist

出现右括号。
将默认字段设置为数据库中存在的另一个UUID也没有任何帮助。我正在尝试运行迁移。
我的模特:

class User(models.Model):

"""
A class presenting user who can view lessons and have access to them
"""

user_id = models.UUIDField(
    primary_key=True,
    default=uuid.uuid4,
    editable=False,
    null=True
    )
name = models.CharField(max_length=60, default='Name')
date_of_registration = models.TimeField(default=timezone.now)

def __str__(self):
    return self.id

将默认值设置为当前user_id也没有帮助。stackoverflow上类似的问题没有答案,在互联网上没有找到关于这个特定问题的信息。我应该提供哪些附加信息?

wz3gfoph

wz3gfoph1#

UUID不是NULL,所以user_id=None将不起作用,它是字符串None,所以您可以使用以下命令检索:

User.objects.get(user_id='None')

UUID在大多数数据库中只是一个CharField,它将UUID存储为字符串,因此它将在其上调用str(…),显然它在None对象上做了这件事。

mftmpeh8

mftmpeh82#

from uuid import UUID

try:
    user_uuid = UUID("your_uuid_here")  # Replace "your_uuid_here" with the actual UUID
    user = User.objects.get(user_id=user_uuid)
except User.DoesNotExist:
    # Handle the case where the user doesn't exist
    user = None  # Or any other appropriate action

相关问题