如何在不使用django管理员的情况下创建userprofile表单?
问题描述:
我想创建一个处理用户登录和用户配置文件创建的模板。我不想使用django-admin。那么我如何管理它?没有django-admin,django文档并没有真正讲述如何进行用户登录。如何在不使用django管理员的情况下创建userprofile表单?
答
登录请参阅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
答
至于用户配置文件的创建而言,这是最好的,以便为用户模型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()
访问您的视图中的配置文件。
答
尝试:
from django.contrib.auth.models import User
使用create_user(username,email,password)
对于没有管理员创建一个用户的方法。
user=User.objects.create_user(username,email,password)
user.save()
一个非常基本的模板代码为如何处理的用户名和密码,将是非常有益 – Hick 2011-06-09 10:44:46
Django文档提供了一个很好的登录模板来帮助您开始,检查出来[这里](HTTPS:/ /docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.login) – ryanshow 2011-06-09 21:46:25