2

そこで、django アプリが PostgreSQL データベースを使用するように settings.py を変更しました。データベースにはまだ何もありません。私が欲しいのは、私のウェブサイトのフロントページに、名、姓、電子メール、未使用のユーザー名 (データベースにまだ存在しないユーザー名)、および年齢を尋ねる登録フォームです。人々が有効なフォームを送信した後、提供された電子メール アドレスに確認の電子メールを送信したいと考えています。確認メールが送信されたら、フォームを使用して送信したすべての情報を登録ユーザーのデータベースに入力したいと考えています。

私はグーグルで検索して、djangoでフォームを作成するさまざまな方法を見つけましたが、それを行うための最良の方法が何であるかわかりません。最初にこれ ( https://docs.djangoproject.com/en/dev/topics/forms/ ) を見つけました。これは、指定された電子メール アドレスに電子メールを送信できることについて説明しています。次に、modelForm ( https://docs.djangoproject.com/en/dev/topics/forms/modelforms/ ) を見つけました。次に、サインインとサインアウトについて説明している djangobook からこれら 2 つを見つけました ( http://www.djangobook.com/en/2.0/chapter14.htmlおよびhttps://docs.djangoproject.com/en/1.4 /topics/auth/ ) そして、ここで django-registration 1.0 のドキュメントを見つけました ( https://django-registration.readthedocs.org/en/v1.0/genindex.html#R)。やりたいことを達成するために、どこから始めるのが最適ですか?

私が試していたのは、最初のリンクからのものでした:

from django import forms

class ContactForm(forms.Form):
    first_name = forms.CharField()
    last_name = forms.CharField()
    sender = forms.EmailField()
    user_name = forms.CharField()
    age = forms.forms.IntegerField()

そして、する

from django.shortcuts import render
from django.http import HttpResponseRedirect

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST) 
        if form.is_valid(): 
            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            sender = form.cleaned_data['sender']
            user_name = form.cleaned_data['user_name']
            age = form.clean_data['age']

            recipients = []
            recipients.append(sender)

            from django.core.mail import send_mail
            send_mail(first_name, last_name, sender, recipients)
            form.save()
            return HttpResponseRedirect('/thanks/')
    else:
        form = ContactForm()

return render(request, 'contact.html', {
    'form': form,
})

これは私の試みです。html と css を使用してこれらのフォームの外観を編集する方法さえわからず、データベースにどのテーブルが作成されるかさえわからないため、かなり間違っていると思います。誰かが私の仕事を手伝ってくれますか? 情報をデータベースに送信するフォームの作成方法を説明するドキュメント (および、情報がデータベースに送信される方法とそのデータベースへのアクセス方法を示す) を参照するだけでも十分です。

4

2 に答える 2

2

そう遠くない :) 必要なのは、これらすべての Django パーツがどのように組み合わされるかについて、もう少し理解することだと思います。

したがって、まだ行っていない場合は、最初に Django のチュートリアル ( https://docs.djangoproject.com/en/dev/intro/tutorial01/ ) を実行することを強くお勧めします。ドキュメント、特にformsmodelsを読み直す価値があるかもしれません。ModelForm

(上記を実行すると、次のことがより理解できるようになります。)

FormDjango の s は、フォーム送信の処理に役立ついくつかのユーティリティを使用した HTML フォームの抽象化です。これらのフォーム送信は、電子メールで送信したり、データベースに保存したり、無視したり、何でも好きなように行うことができます!

フォームはしばしば何らかの方法で Django モデルにマップされるため、ModelFormが役に立ちます。たとえば、フォームの送信がモデル インスタンスとしてデータベースに保存されることがよくあります。したがって、Form既存のモデルとほぼ同じフィールドを含むを作成する代わりに、 を使用するとModelForm、この重複を減らすことができます。ModelFormdocsの例を確認してください。

HTMLとCSSを使用してこれらのフォームの外観を編集する方法さえ知りません

フォーム テンプレートのカスタマイズを確認してください(ただし、まずテンプレートとは何かを理解していることを確認してください --- まず、上記の Django チュートリアルを実行してください!)

これがデータベースにどのテーブルを作成するのかさえわかりません

Django は、保存 (モデルsave()メソッドによる) やテーブルの作成 (実行時) など、データベースの詳細のほとんどを処理しますpython manage.py syncdb。ただし、最初に Django チュートリアル/ドキュメントを確認してください。


これらすべての部分がどのように組み合わされるかを理解したら、django-registrationを使用することを検討してください。これはおそらく、あなたがやりたいことのほとんどを行うからです。

お役に立てれば!:)

于 2013-07-24T02:48:03.410 に答える
0

情報を保持し、その情報をデータベースに永続化できるDjango Modelsについて読みたいと考えています。

別の注意として、必要なものはdjango-registrationでカバーされています。そのアプリを使用して、ユーザーはサインアップし、電子メールの確認を受け取り、情報がデータベースに保存されます。

于 2013-07-23T07:00:22.103 に答える