模板应该用于特定视图和模型。那urls.py应该是什么?

时间:2011-06-10 08:32:27

标签: django

我是Django的新手,并通过大量的试错过程来学习它。大多是错误。

这就是我的观点 来自django.contrib.auth import authenticate,login 来自django.shortcuts导入render_to_response

def login(request):
    def errorHandle(error):
        form = LoginForm()
        return render_to_response('login.html', {
                'error' : error,
                'form' : form,
        })
    if request.method == 'POST': # If the form has been submitted...
        form = LoginForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    # Redirect to a success page.
                    login(request, user)
                    return render_to_response('userprof/login.html', {
                        'username': username,
                    })
                else:
                    # Return a 'disabled account' error message
                    error = u'account disabled'
                    return errorHandle(error)
            else:
                 # Return an 'invalid login' error message.
                error = u'invalid login'
                return errorHandle(error)
        else:
            error = u'form is invalid'
            return errorHandle(error)
    else:
        form = LoginForm() # An unbound form
        return render_to_response('login.html', {
            'form': form,
        })

这是我的模特

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

class UserProfile(models.Model):  
    user = models.OneToOneField(User)  
    #other fields here

    def __str__(self):  
          return "%s's profile" % self.user  

def create_user_profile(sender, instance, created, **kwargs):  
    if created:  
       profile, created = UserProfile.objects.get_or_create(user=instance)  

post_save.connect(create_user_profile, sender=User) 

我的模板应该有一个用户名和密码字段,以便将值发送到此视图。 我对django用户widget的使用方式非常困惑,因此这些疑惑。

另一件事是,我的urls.py应该是什么? Ps:我现在收到一个反向错误。

1 个答案:

答案 0 :(得分:0)

Django已经有了一个内置的视图 - django.contrib.auth.views.login(可高度自定义)。 Documentation将为您提供示例模板和网址格式。