全局名称' RequestContext'没有定义

时间:2015-02-14 17:17:59

标签: python django authentication

伙计我是Python的新手,更多的是Django,请理解我的限制。我正在尝试使用Django身份验证模块并在我的视图中出现错误

出现以下错误:未定义全局名称“RequestContext”

以下是代码:

def register(request):
# Like before, get the request's context.
context = RequestContext(request)
# A boolean value for telling the template whether the registration was successful.
# Set to False initially. Code changes value to True when registration succeeds.
registered = False

# If it's a HTTP POST, we're interested in processing form data.
if request.method == 'POST':
    # Attempt to grab information from the raw form information.
    # Note that we make use of both UserForm and UserProfileForm.
    user_form = UserForm(data=request.POST)
    profile_form = UserProfileForm(data=request.POST)

    # If the two forms are valid...
    if user_form.is_valid() and profile_form.is_valid():
        # Save the user's form data to the database.
        user = user_form.save()

        # Now we hash the password with the set_password method.
        # Once hashed, we can update the user object.
        user.set_password(user.password)
        user.save()

        # Now sort out the UserProfile instance.
        # Since we need to set the user attribute ourselves, we set commit=False.
        # This delays saving the model until we're ready to avoid integrity problems.
        profile = profile_form.save(commit=False)
        profile.user = user

        # Did the user provide a profile picture?
        # If so, we need to get it from the input form and put it in the UserProfile model.
        if 'picture' in request.FILES:
            profile.picture = request.FILES['picture']

        # Now we save the UserProfile model instance.
        profile.save()

        # Update our variable to tell the template registration was successful.
        registered = True

    # Invalid form or forms - mistakes or something else?
    # Print problems to the terminal.
    # They'll also be shown to the user.
    else:
        print user_form.errors, profile_form.errors

# Not a HTTP POST, so we render our form using two ModelForm instances.
# These forms will be blank, ready for user input.
else:
    user_form = UserForm()
    profile_form = UserProfileForm()

# Render the template depending on the context.
return render_to_response(
        'blogapp/register.html',
        {'user_form': user_form, 'profile_form': profile_form, 'registered': registered},
        context)

1 个答案:

答案 0 :(得分:6)

您导入了RequestContext吗?

from django.template import RequestContext