Python 在Django中使用用户名从扩展用户模型检索用户详细信息
我试图从Django中的扩展用户模型中使用用户名test检索用户的详细信息。但是我做不到。这给了我一个错误: 以10为基数的int()的/ValueError处的文字无效:“test” 以下是我的代码: 型号.pyPython 在Django中使用用户名从扩展用户模型检索用户详细信息,python,django,django-models,Python,Django,Django Models,我试图从Django中的扩展用户模型中使用用户名test检索用户的详细信息。但是我做不到。这给了我一个错误: 以10为基数的int()的/ValueError处的文字无效:“test” 以下是我的代码: 型号.py class DocchainUser(models.Model): docchainuser_name = models.OneToOneField(User, on_delete = models.CASCADE, default='x') address = mo
class DocchainUser(models.Model):
docchainuser_name = models.OneToOneField(User, on_delete = models.CASCADE, default='x')
address = models.CharField(max_length=64,unique=True)
def __str__(self):
return self.address
def my_users(request):
if request.method == 'POST':
username = request.POST.get('username')
user = authenticate(username=username)
if user:
if user.is_authenticated:
signBool = signatureAuth(username)
if signBool == 'AUTHENTICATED':
login(request, user, backend=settings.AUTHENTICATION_BACKENDS[0])
return HttpResponseRedirect('/dashboard')
....
视图.py
class DocchainUser(models.Model):
docchainuser_name = models.OneToOneField(User, on_delete = models.CASCADE, default='x')
address = models.CharField(max_length=64,unique=True)
def __str__(self):
return self.address
def my_users(request):
if request.method == 'POST':
username = request.POST.get('username')
user = authenticate(username=username)
if user:
if user.is_authenticated:
signBool = signatureAuth(username)
if signBool == 'AUTHENTICATED':
login(request, user, backend=settings.AUTHENTICATION_BACKENDS[0])
return HttpResponseRedirect('/dashboard')
....
和签名()现在:
def signatureAuth(username):
userModel = DocchainUser.objects.filter(docchainuser_name=username)
address = userModel.address
print(address)
...
我正在使用signatureAuth()方法中的用户名:test检索用户详细信息测试已存在于my User和DocChain User模型中。您没有扩展的用户模型,您有一个单独的模型,与用户有一对一的关系。因此,为了通过用户名查询该模型,您需要遵循以下关系
userModel = DocchainUser.objects.filter(docchainuser_name__username=username)
请注意,您在这里挣扎的原因之一是您的OneToOneField可能命名错误;关系是与整个模型,而不是用户名;你应该把它叫做docchainuser
(还要注意,如果user.is\u authenticated,则您的
是没有意义的;这只是检查用户是否是user的实例,而不是匿名用户,您知道这是因为您刚刚从用户模型显式检索到它。)哪行代码出现错误?您可以尝试:userModel=user.objects.filter(username=username)
@MatthewGaiser它位于userModel=DocchainUser.objects.filter(DocchainUser\u name=username)
行中。不管怎样,现在已经解决了。谢谢。@ToniSredanovićuserModel=User.objects.filter(username=username)
在我尝试从DocchainUser模型检索用户时,从用户模型检索用户。不管怎样,现在已经解决了。谢谢你。它正在工作。我不知道你的用户名。它现在正在返回queryset。也谢谢你的建议。