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

问题描述:

我想创建一个处理用户登录和用户配置文件创建的模板。我不想使用django-admin。那么我如何管理它?没有django-admin,django文档并没有真正讲述如何进行用户登录。如何在不使用django管理员的情况下创建userprofile表单?

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

登录请参阅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

什么?认证上有a whole page,几乎没有提到管理网站。

至于用户配置文件的创建而言,这是最好的,以便为用户模型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()访问您的视图中的配置文件。

+0

一个非常基本的模板代码为如何处理的用户名和密码,将是非常有益 – Hick 2011-06-09 10:44:46

+0

Django文档提供了一个很好的登录模板来帮助您开始,检查出来[这里](HTTPS:/ /docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.login) – ryanshow 2011-06-09 21:46:25

尝试:

from django.contrib.auth.models import User 

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

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