更新时间:2023-01-30 08:53:04
我不知道一步一步我肯定一个扎实的谷歌会产生一些东西)。
1)创建一个 UserProfile
模型来保存额外的信息并放置它在你的 models.py
中。它可能看起来像这样:
class UserProfile(models.Model):
pre>
#由auth模型请求
user = models.ForeignKey(User,unique = True)
middle_name = models.CharField(max_length = 30,null = True,blank = True)2)通过添加此行(使用适当的名称)告诉您的新课程
settings.py
:AUTH_PROFILE_MODULE =myapp.UserProfile
3)添加一个信号侦听器以在添加新用户时创建一个空白的
UserProfile
记录。您可以在这里找到一个很棒的片段。4)处理新用户记录时,您还可以填充
UserProfile
记录。这是我如何做插入(注意 get_profile ):if(form.is_valid()):
cd = form .cleaned_data
user = User.objects.create_user(cd [UserName],cd [Email],cd [Password])
user.first_name = cd [FirstName]
user.last_name = cd [LastName]
user.save()
#Save userinfo record
uinfo = user.get_profile()
uinfo.middle_name = cd [MiddleName]
uinfo.save()这就是它所有。这不是全面的,但应该指向正确的方向。
更新:请注意,
AUTH_PROFILE_MODULE
自v1.5以来已弃用: https ://docs.djangoproject.com/en/1.5/ref/settings/#auth-profile-moduleI am using the create_user() function that Django provides to create my users. Also I want to store additional information about the users. So I tried following the instructions given at
http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
but I cannot get it to work for me. Is there a step-by-step guide that I can follow to get this to work for me?
Also, once I have added these custom fields, I would obviously need to add / edit / delete data from them. I cannot seem to find any instructions on how to do this.
I am not aware of a step by step(though I am sure a solid google would produce something). But here is a quick go at it.
1) Create a
UserProfile
model to hold the extra information and put it in yourmodels.py
. It could look something like this:class UserProfile(models.Model): #required by the auth model user = models.ForeignKey(User, unique=True) middle_name = models.CharField(max_length=30, null=True, blank=True)
2) Tell your
settings.py
about the new class by adding this line (with the appropriate name):AUTH_PROFILE_MODULE = "myapp.UserProfile"
3) Add a signal listener to create a blank
UserProfile
record when a new user is added. You can find a great snippet with directions here.4) When processing the new user record you can populate the
UserProfile
record as well. Here is how I do the insert (notice the get_profile):if (form.is_valid()): cd = form.cleaned_data user = User.objects.create_user(cd["UserName"], cd["Email"], cd["Password"]) user.first_name = cd["FirstName"] user.last_name = cd["LastName"] user.save() #Save userinfo record uinfo = user.get_profile() uinfo.middle_name = cd["MiddleName"] uinfo.save()
That is all there is to it. This is not comprehensive, but should point you in the right direction.
Update: Please note that
AUTH_PROFILE_MODULE
is deprecated since v1.5: https://docs.djangoproject.com/en/1.5/ref/settings/#auth-profile-module