Django:如何通过id获取模型实例

Django:如何通过id获取模型实例,django,model,instance,Django,Model,Instance,我需要传递一个模型实例来创建另一个带有外键的模型实例。我有入口id,但如果我有 user = User.objects.get(id = request.user.id) 但是出现的这个用户对象不是一个模型实例,当我将它作为外键引用传递到另一个模型时,我会得到一个错误 我在这里该怎么办?这似乎是一个棘手的问题。。。如果模型具有外键,则要创建该模型的新实例,需要相应外键模型的新实例。但是,如果该外键模型在数据库中已经有记录,该怎么办?如果objects.get不给您一个实例,您能做什么?您无法在

我需要传递一个模型实例来创建另一个带有外键的模型实例。我有入口id,但如果我有

user = User.objects.get(id = request.user.id)
但是出现的这个用户对象不是一个模型实例,当我将它作为外键引用传递到另一个模型时,我会得到一个错误

我在这里该怎么办?这似乎是一个棘手的问题。。。如果模型具有外键,则要创建该模型的新实例,需要相应外键模型的新实例。但是,如果该外键模型在数据库中已经有记录,该怎么办?如果objects.get不给您一个实例,您能做什么?您无法在数据库中准确地创建另一个新实例,这是错误的,并且不会工作,因为id都是自动递增的


我一定是错过了一些重要的东西……

如果不是模型实例,用户是什么?不需要像现在这样获取用户。request.user是登录用户的模型实例。1。您可以使用request.User代替User.objects.getid=request.User.id。2.如果用户经过身份验证,则User thing是一个模型实例。例如,请使用login_required decorator进行检查。好的,我已经找到了。。。。我的代码中有一个自定义用户模型,当我定义另一个模型时,我意外地用外键将它链接到Django中的默认用户类,难怪它会抱怨。要回答Alasdair,request.user类显然不是我的自定义用户类。我使用了Django的默认身份验证。。。也许我应该写我自己的东西。只是一团糟。我之所以要千方百计创建一个新的用户类,完全是因为这个奇怪的东西,你不能使用电子邮件作为你的用户id。Django的创建者在这一点上有点奇怪。@reedvoid例如,确实,正确的方法是创建一个自定义的身份验证后端,不是自定义用户类-无论您如何处理,这都是一条痛苦之路。