我的SQLite数据库中有3个表:用户,帐户,密码。帐户和密码的ID是对User.id的ForeignKey。问题是User的实例在保存之前没有id(并且django添加了Primary Field)。这就是我尝试这样做的方式,因为User.email应该是唯一的,然后我应该只返回一个对象,但它不起作用。我确信有更好的方法可以做到这一点。
tl; dr当我创建用户时,我还想要为他们创建一个帐户和密码表,通过ForeignKey,id(也是PrimaryKey)进行链接。
def adduser(request):
u = User(email=request.POST['email'], username=request.POST['username'], password=request.POST['password'])
a = Accounts()
u.save()
u = User.objects.get(email=request.POST['email'])
a.id = u.id
a.save()
答案 0 :(得分:1)
这更接近你想要的。
def adduser(request):
u = User(email=request.POST['email'], username=request.POST['username'], password=request.POST['password'])
u.save()
a = Accounts(
user=u
)
a.save()
如果是这样,你真的想要这个:
def adduser(request):
u = User(email=request.POST['email'], username=request.POST['username'])
u.set_password(request.POST['password'])
u.save()
a = Accounts(
user=u
)
a.save()
此外,您是否考虑过使用django的表单和表单实用程序,而不是在任何地方使用request.POST变量?他们很不错。