フォームの情報を保存して、管理サイトパネルに表示するにはどうすればよいですか?

クリストファーナバ

私はウェブページを作成していて、メッセージを残してくれる人を探している連絡先セクションがあり、それから彼らに連絡します。フォームに入力した情報をデータベースに保存して、後で見ることができるようにしたいです。 Django管理ページで。

# models.py
from django.db import models

class Contact(models.Model):
    name = models.CharField(max_length = 100, verbose_name = "Nombre")
    email = models.CharField(max_length = 100, verbose_name = "Email")
    issue = models.CharField(max_length = 200, verbose_name = "Asunto")
    text = models.TextField(verbose_name = "Mensaje")


# forms.py
from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length = 100, label = "Nombre")
    email = forms.EmailField(label = "Correo electrónico")
    issue = forms.CharField(max_length = 200, label = "Asunto")
    text = forms.CharField(label = "Mensaje")


# views.py
from django.views.generic import TemplateView
from contact.forms import ContactForm
from django.shortcuts import render

class Contact(TemplateView):
    template_name = 'contact/contact.html'

    def get(self, request):
        form = ContactForm
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = ContactForm(request.POST)

        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            issue = form.cleaned_data['issue']
            text = form.cleaned_data['text']
            form = ContactForm()
            args = {
                'form': form, 
                'name': name,
                'email': email,
                'issue': issue,
                'text': text,
                }

            return render(request, self.template_name, args)


<!-- And this is the form -->
<div class="page-section contact-page">
    <div class="contact-warp">
        <div class="row">
            <div class="col-xl-6 p-0">
                <div class="contact-text">
                    <span>¡Hola!</span>
                    <h2>Contáctame</h2>
                    <form class="contact-form" method="post">
                    {% csrf_token %}
                    {{ form.as_p }}
                    <button class="site-btn">Enviar mensaje</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

何度か試みましたが、管理者に表示する情報を取得できません(すでに管理者にモデルを登録しています)。私を助けてください :(

ルドラ

ModelFormを使用していないため、これらの値を手動でビューに保存する必要があります。このような:

def post(self, request):
    form = ContactForm(request.POST)

    if form.is_valid():
        name = form.cleaned_data['name']
        email = form.cleaned_data['email']
        issue = form.cleaned_data['issue']
        text = form.cleaned_data['text']
        args = {
            'form': form, 
            'name': name,
            'email': email,
            'issue': issue,
            'text': text,
        }
        Contact.objects.create(**args)  # <-- saving to DB
        # rest of the code

FormViewはフォームの処理にはるかに適しているため、TemplateViewを使用している理由がわかりません例えば:

class ContactView(FormView):
    form_class = ContactForm
    template_name = 'contact/contact.html'
    success_url= '/'

    def form_valid(self, form):
        name = form.cleaned_data['name']
        email = form.cleaned_data['email']
        issue = form.cleaned_data['issue']
        text = form.cleaned_data['text']
        args = {
            'form': form, 
            'name': name,
            'email': email,
            'issue': issue,
            'text': text,
        }
        Contact.objects.create(**args)
        return super(ContactView).form_valid(form)

また、ModelFormを使用する場合は、次のようにデータを保存できます。

class ContactForm(forms.ModelForm):
    class Meta:
        model = Contact
        fields = "__all__"

# usage

if form.is_valid():
    form.save()
    # rest of the code

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

forループを介してデータベースから特定のアイテムの情報を表示するにはどうすればよいですか?

分類Dev

route53-list-recordsの出力をフォーマットして、特定の情報を表示するにはどうすればよいですか?

分類Dev

Vistaで.MOVサムネイルをムービーのフレームとして表示するにはどうすればよいですか?

分類Dev

vb.netの資格情報を使用してリモートフォルダーにアクセスするにはどうすればよいですか?

分類Dev

nswagによって生成されるデフォルトの情報タイトルを変更するにはどうすればよいですか?

分類Dev

Groovyスクリプトを使用してJenkinsの特定のフォルダーの資格情報を更新するにはどうすればよいですか?

分類Dev

カーネルデバッグ情報を個別のファイルとして構築するにはどうすればよいですか?

分類Dev

beautifulsoupを使用してウェブサイトのテーブルから複数の情報を取得するにはどうすればよいですか

分類Dev

Railsのフォームから情報を取得するにはどうすればよいですか?

分類Dev

マップ上にマーカーのみを表示できますが、マーカーのクリック時にデフォルトの情報ウィンドウまたはカスタム情報ウィンドウを表示しないようにするにはどうすればよいですか?

分類Dev

トルネードを使用してサーバー内のファイルリストを表示するにはどうすればよいですか?

分類Dev

Pythonを使用してExcelからPowerPointに情報をプルし、フォーマットを保持するにはどうすればよいですか?

分類Dev

zip フォルダー内に .dd ファイルを保存していますが、その内容を表示するにはどうすればよいですか?

分類Dev

Django管理フィルターパネルでカテゴリごとのアイテム数を表示するにはどうすればよいですか?

分類Dev

Python 3を使用してTkinterのフォームからScrolledTextに情報を送信するにはどうすればよいですか?

分類Dev

PHPフォームとmysqlを使用して動的管理パネルを作成するにはどうすればよいですか?

分類Dev

JSONファイルなしでHerokuでGoogleのデフォルトの認証情報を使用するにはどうすればよいですか?

分類Dev

カスタムウィザードページからの情報を使用して、Inno Setupにインストールフォルダーを動的に設定させるにはどうすればよいですか?

分類Dev

Angularのフォームの情報からPDFファイルを生成するにはどうすればよいですか?

分類Dev

ファイルとしてダウンロードされ、データベースに保存されているファイルパスを使用してサーバー上のフォルダーに保存されている画像をReactで表示するにはどうすればよいですか?

分類Dev

画像操作-オリジナルを保存し、サイズを変更してフォルダAに保存し、サムネイルを作成してフォルダBに保存するにはどうすればよいですか?

分類Dev

ファイルサーバーごとに複数の資格情報を使用してネットワークドライブをマップするにはどうすればよいですか?

分類Dev

Rのフィルターを使用してテーブルに情報を表示するにはどうすればよいですか?

分類Dev

ファイルヘッダー情報を表示するにはどうすればよいですか?

分類Dev

ファイルヘッダー情報を表示するにはどうすればよいですか?

分類Dev

TableViewセルで特定の情報を選択して表示するにはどうすればよいですか?

分類Dev

現在のカーネルがサポートしているファイルシステムを確認するにはどうすればよいですか?

分類Dev

PHPでWindowsファイルのパス情報を使用するにはどうすればよいですか?

分類Dev

フォームに入力した情報をあるアクティビティから別のアクティビティに保存し、Androidプログラムで複数の試行を表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    forループを介してデータベースから特定のアイテムの情報を表示するにはどうすればよいですか?

  2. 2

    route53-list-recordsの出力をフォーマットして、特定の情報を表示するにはどうすればよいですか?

  3. 3

    Vistaで.MOVサムネイルをムービーのフレームとして表示するにはどうすればよいですか?

  4. 4

    vb.netの資格情報を使用してリモートフォルダーにアクセスするにはどうすればよいですか?

  5. 5

    nswagによって生成されるデフォルトの情報タイトルを変更するにはどうすればよいですか?

  6. 6

    Groovyスクリプトを使用してJenkinsの特定のフォルダーの資格情報を更新するにはどうすればよいですか?

  7. 7

    カーネルデバッグ情報を個別のファイルとして構築するにはどうすればよいですか?

  8. 8

    beautifulsoupを使用してウェブサイトのテーブルから複数の情報を取得するにはどうすればよいですか

  9. 9

    Railsのフォームから情報を取得するにはどうすればよいですか?

  10. 10

    マップ上にマーカーのみを表示できますが、マーカーのクリック時にデフォルトの情報ウィンドウまたはカスタム情報ウィンドウを表示しないようにするにはどうすればよいですか?

  11. 11

    トルネードを使用してサーバー内のファイルリストを表示するにはどうすればよいですか?

  12. 12

    Pythonを使用してExcelからPowerPointに情報をプルし、フォーマットを保持するにはどうすればよいですか?

  13. 13

    zip フォルダー内に .dd ファイルを保存していますが、その内容を表示するにはどうすればよいですか?

  14. 14

    Django管理フィルターパネルでカテゴリごとのアイテム数を表示するにはどうすればよいですか?

  15. 15

    Python 3を使用してTkinterのフォームからScrolledTextに情報を送信するにはどうすればよいですか?

  16. 16

    PHPフォームとmysqlを使用して動的管理パネルを作成するにはどうすればよいですか?

  17. 17

    JSONファイルなしでHerokuでGoogleのデフォルトの認証情報を使用するにはどうすればよいですか?

  18. 18

    カスタムウィザードページからの情報を使用して、Inno Setupにインストールフォルダーを動的に設定させるにはどうすればよいですか?

  19. 19

    Angularのフォームの情報からPDFファイルを生成するにはどうすればよいですか?

  20. 20

    ファイルとしてダウンロードされ、データベースに保存されているファイルパスを使用してサーバー上のフォルダーに保存されている画像をReactで表示するにはどうすればよいですか?

  21. 21

    画像操作-オリジナルを保存し、サイズを変更してフォルダAに保存し、サムネイルを作成してフォルダBに保存するにはどうすればよいですか?

  22. 22

    ファイルサーバーごとに複数の資格情報を使用してネットワークドライブをマップするにはどうすればよいですか?

  23. 23

    Rのフィルターを使用してテーブルに情報を表示するにはどうすればよいですか?

  24. 24

    ファイルヘッダー情報を表示するにはどうすればよいですか?

  25. 25

    ファイルヘッダー情報を表示するにはどうすればよいですか?

  26. 26

    TableViewセルで特定の情報を選択して表示するにはどうすればよいですか?

  27. 27

    現在のカーネルがサポートしているファイルシステムを確認するにはどうすればよいですか?

  28. 28

    PHPでWindowsファイルのパス情報を使用するにはどうすればよいですか?

  29. 29

    フォームに入力した情報をあるアクティビティから別のアクティビティに保存し、Androidプログラムで複数の試行を表示するにはどうすればよいですか?

ホットタグ

アーカイブ