我正在一个人们创建文章的Django网站上工作。我希望人们能够在注册过程中创建一篇文章。以下是步骤:
我是Django的新手,所以就我所关注的问题而言,这里有一些并发症:
在登录过程之前,我是否使用AnonymousUser作为作者保存对象?如何再次找到该对象,以便在用户登录或注册后将其保存到用户? AnonymousUser对象中是否有任何类型的唯一标识符?
我是否应该使用URL在注册过程中传递对象,直到注册完成(然后保存)?如何做到这一点?
答案 0 :(得分:2)
有几种方法可以做你想做的事情。我会从创建文章表单中排除用户,并将user设置为blank = True,null = True。
在您创建用户之前,是否只是将文章保留在会话中,或者将其保留到数据库并在之后分配用户,这取决于您。
将其保留在会话中的一个好处是,如果用户放弃注册过程,则您在数据库中没有记录。我建议采用这种方式,因为它很容易做到,如果用户放弃会话,你不必有任何逻辑来清理你的数据库。
要专门回答有关匿名用户的问题...否,匿名用户没有唯一标识符。您可以在Django中使用会话来在视图之间保留对象。
答案 1 :(得分:1)
“我是否应该在注册过程中使用URL传递对象直到注册(然后保存)?如何做到这一点?”
您提出的上述建议是更好的解决方案,但不要将其传递给网址。有两种方法可以成功地做到这一点。