<p>我试图让Django管理界面显示关于我的个人资料的信息。它显示我的所有用户,但没有配置文件信息。我不太确定如何使它发挥作用。</p>
<p>我在谷歌上快速搜索后发现了这段代码:</p>
<pre><code>from auth.models import UserProfile
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
inlines = [UserProfileInline]
admin.site.register(User, UserProfileAdmin)
</code></pre>
<p>然而,我认为它不起作用。当我登录到管理页面时,我会看到用户、组和站点。我点击用户,我看到我所有用户的列表,但没有任何个人资料的迹象。点击一个用户会显示该用户的信息,但仍然没有配置文件信息。</p>
<p>如果有帮助,这里是我的模型声明:</p>
<pre><code>from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
company = models.CharField(max_length=30)
user = models.ForeignKey(User, unique=True)
</code></pre>
<p>我的注册码是:</p>
<pre><code>def register(request):
if request.method == 'POST':
uf = UserForm(request.POST)
upf = UserProfileForm(request.POST)
if uf.is_valid() and upf.is_valid():
user = uf.save()
userprofile = upf.save(commit=False)#need to get the user profile object first
userprofile.user = user #then set the user to user
userprofile.save() #then save to the database
return HttpResponseRedirect('/auth/login/')
else:
uf = UserForm()
upf = UserProfileForm()
return render_to_response('register.html', dict(userform=uf,userprofileform=upf),context_instance=RequestContext(request))
</code></pre>