我在我的代码中使用了这样的条件语句:
if not profile.client.user.id == 3:
不知怎的,这给了我Exception: Client matching query does not exist.
例外。这只是一个条件运算符,所以我不确定为什么我会得到这个异常。有没有人知道可能出现什么问题?
class UserProfile(models.Model):
# This field is required.
user = models.OneToOneField(User)
client = models.ForeignKey(Client,null=True)
class Client(models.Model):
user = models.ForeignKey(AUTH_USER_MODEL, related_name='oauth2_client',
blank=True, null=True)
答案 0 :(得分:0)
尝试使用pk而不是id
if not profile.client.user.pk == 3:
更多他们的:What's the difference between Model.id and Model.pk in django?
答案 1 :(得分:0)
这意味着您的数据库已损坏 - profile.client
字段指向不存在的Client
。您可以使用以下查询进行检查:
client = Client.objects.get(pk=profile.client_id)
如果此类客户端存在,则此查询将正常执行。如果客户端不存在,那么将引发异常。