2

やりたいことは非常に単純ですが、何らかの理由でまだ解決策が見つかりません。HTMLのフォームがあります

<form id="user_form" method="POST" action="/ProjectName/home/">

    {% csrf_token %}

    <div class="registerLabel">
        Full name:
    </div>
    <div class="registerTextLabel">
        <input type="text" id="registerFullName" class="registerTextDetails">
    </div>
    <div class="registerLabel">
        Username:
    </div>
    <div class="registerTextLabel">
        <input type="text" id="registerUsername" class="registerTextDetails">
    </div>

    <div id="registerButtonDiv">
        <button class="registerButtons" id="cancelRegisterButton">Cancel</button>
        <button type="submit" class="registerButtons" id="submitRegistration">Register</button>
    </div>
</form>

私が欲しいのは、このフォームに入力して送信し、すべてのテキストボックスの値を取得してデータベースに入れることです。

db モデルは次のように実装されます。

class User(models.Model):
    username = models.CharField(max_length=200)
    password = models.CharField(max_length=200)
    ...
    def __unicode__(self):
        return self.username

ビューのコードは次のとおりです。

def register(request):
    context = RequestContext(request)
    registed = False
    if request.method == 'POST':
        form = User(data = request.POST)
        username = request.POST.get('registerUsername')
        password = request.POST.get('registerPass')
        user = form.save()
        username = User.username
        password = User.password
        u = User(username,password,...)
        u.save()
        registered = True
        else:
            form = User()

        return render_to_response('ProjectName/home.html', {'user_form':User}, context)

モデルからフォームを生成するDjangoの自動化された方法を使用したくありません。

4

3 に答える 3

1

フォームで名前を定義するのを忘れました。POSTデータを取得するために重要です。

<form .........>
   {{error}}<br/><br/>
<div class="registerLabel">Username:</div>
<div class="registerTextLabel">
    <input type="text" id="registerUsername" name="registerUsername" class="registerTextDetails">
</div>

<div class="registerLabel" id="registerLabelPass">Password:</div>
<div class="registerTextLabel">
    <input type="password" id="registerPass" name="registerPass" class="registerTextDetails">
</div>
</form>

def register(request):
    context = RequestContext(request)
    registered = False
    error = ''
    if request.method == 'POST':
        username = request.POST.get('registerUsername')
        password = request.POST.get('registerPass')

        if username and password:
            username_exist = User.objects.filter(username=username)
            if username_exist:
                error = username is already taken, try another
            else:
                User.objects.create(username=username, password=password)
                registered = True
        else:
            error = all fields are required

    return render_to_response('ProjectName/home.html', {'error':error}, context)
于 2013-03-10T15:39:43.807 に答える
0

このユーザー名 = User.username パスワード = User.password であってはなりません

なれ

User.username = ユーザー名 User.password = パスワード

于 2016-10-22T02:43:18.403 に答える