1

登録時にユーザー型オブジェクトを追加するメソッドを作成しようとしています。コードは次のとおりです。

ビュー.py

def registration(request):
c= {}
c.update(csrf(request))
state = "Please Register below..."
username = None
email = None
password = None
user_success = None
user_created = None
if request.POST:
    username = request.POST.get('username')
    email = request.POST.get('email')
    password = request.POST.get('password')
    print "username ",username

user = authenticate(username=username, password=password)
if user is not None:
    if user.is_active:
        user_created = True
    else:
        user_created = False
else:
        user = User.objects.create_user(username=username,password=password,email=email)
        user.save()
        user.is_active = True
        user_success = True

return render_to_response('register.html',{'success':user_success,'created':user_created,'username': username},context_instance = RequestContext(request))

フォーム.py

class RegistrationForm(forms.Form):

username = forms.CharField()
email = forms.EmailField()
password =  forms.CharField()

templates/register.html は:

{% extends "base.html" %}
{% block pageContent %}
<div class="container">


    <form action="/register" method="post">

            {% csrf_token %}
            username:
            <input type="text" name="username" value="{{ username}}" /><br />
            password:
            <input type="password" name="password" value="" /><br />
            Email:
            <input type="text" name="email" value="{{email}}" /><br />

            <input type = 'submit' value='Register' />
    </form>


</div>
{% endblock %}

誰でもエラーを見つけるのを手伝ってもらえますか? 私が登録権を持っているかどうかも教えてください

4

2 に答える 2

1

usernameこの時点での値は、True と評価される必要があります。

user = User.objects.create_user(username=username,password=password,email=email)
#                                        ^^^^^^^^ this can't be a bool() false 

なんで?そのエラーメッセージは非常に具体的です..それはdjango authのこの特定の場所から呼び出されます:

  def create_user(self, username, email=None, password=None, **extra_fields):
        """
        Creates and saves a User with the given username, email and password.
        """
        now = timezone.now()
        if not username:
            raise ValueError('The given username must be set')

ユーザー名が正しい値であると 100% 肯定的に言えますか? 空の文字列のように聞こえます。

于 2013-04-28T00:36:05.240 に答える
0

エラーが見つかりました。エラーはview.pyのインデントにありました。

if user is not None:

コードの一部は、リクエスト タイプが POST の場合にのみ使用する必要があります。そのため、インデントが必要でした。

于 2013-04-28T00:50:36.533 に答える