2012-01-14 37 views
2

前提:Django的注册:什么是先进的日期 '规范' 的方式延长 'contrib.auth.models.User'

1)环境:Django的1.3,Python 2.6中,开发:跨越多个平台,督促:RHEL

2)我想让网站的工作人员添加用户(从管理网站)。他们只填写一页'用户名','email','password1',密码2'AND'first_name','last_name','phone','skype'。点击“确定”即可完成。

3)我已经通过了文档和网页搜索,发现只有相当过时的来源,非工作思路和一些可能的工作,但应对修改Django的(我发现很难部署和维护源)

你有什么建议以最干净(简单,透明,简单的方式)完成这项工作?

到目前为止,这篇文章和它的评论是最有用的信息来源,我发现:http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

感谢

+0

可能的重复[在django的auth用户模型中创建名字,姓氏必需属性而不是可选属性](http://stackoverflow.com/questions/8466851/making-first-name-last-name-a-required -attribute-rather-an-optional-one-in) – 2012-01-14 09:54:07

+0

我不认为任何官方django文档都建议用户模型的继承,是吗? – 2012-01-14 09:56:55

+0

是的,他们不会讲太多。这就是我问的原因。 – tookanstoken 2012-01-14 10:15:38

回答

2

我相信这样做的推荐方式是通过用户配置:

#models.py 
class MySiteProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    join_date = models.DateField() 
    # and whatever additional fields you want 

#admin.py 
from django.contrib.auth.admin import UserAdmin 

admin.site.unregister(User) 

class MyUserAdmin(UserAdmin): 
    inlines = [MySiteProfileInline, ] 

admin.site.register(User, MyUserAdmin) 


#inlines.py 
class MySiteProfileInline(admin.TabularInline): 
    model = MySiteProfile 
+0

是的,推荐的方法是UserProfile,当然。但是,如果不修改django安装中的其他文件,它不会解决问题,我怀疑这是推荐的。 – tookanstoken 2012-01-14 10:13:49

+0

我不明白。我以为你说过你想让所有与用户有关的内容都可以在一个页面上进行编辑?上面的代码只是使用内联。 – 2012-01-14 17:09:48

相关问题