如何在不使用django管理员的情况下创建userprofile表单?

时间:2011-06-09 08:37:26

标签: django

我想创建一个处理用户登录和用户个人资料创建的模板。我不想使用django-admin。那我该怎么办呢?在没有django-admin的情况下,django文档并没有真正谈论用户登录。

5 个答案:

答案 0 :(得分:2)

就用户配置文件创建而言,最好为User模型进行post_save信号回调,如果它不存在则创建配置文件...例如:

from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User

class UserProfile(models.Model)
    user = models.ForeignKey(User)
    # ... etc, your user-profile stuff here

def user_save_callback(sender, **kwargs):
    user = kwargs['instance']
    user_profile, user_profile_created = UserProfile.objects.get_or_create(user=user)

post_save.connect(user_save_callback, sender=User)

不要忘记将AUTH_PROFILE_MODULE='my_app.my_user_profile_model'添加到您的settings.py

然后,您可以在创建用户后使用request.user.get_profile()访问视图中的个人资料。

答案 1 :(得分:0)

django.contrib.auth.views.login接受template_name参数。您可以在docs中看到示例模板。

答案 2 :(得分:0)

登录请参阅docs创建自己的视图,或者您可以使用自己的模板使用内置视图。

urlpatterns = patterns('',
                       (r'^login/$', 
                        'django.contrib.auth.views.login', 
                        {'template_name': 'accounts/login.html'}),

                       (r'^logout/$', 
                        'django.contrib.auth.views.logout', 
                        {'template_name': 'accounts/logged_out.html'}),

要注册,您可以使用django registration

答案 3 :(得分:0)

什么?身份验证a whole page很难提及管理网站。

答案 4 :(得分:0)

尝试:

from django.contrib.auth.models import User

使用create_user(username,email,password)方法创建没有管理员的用户。

user=User.objects.create_user(username,email,password)
user.save()