Python 在数据库中保存表单数据
您好,我是Django的新手,我已经创建了一个可用的房屋张贴表单,但我无法将输入的数据存储在数据库中。我使用了if form.is_有效和form.cleaned_数据请我需要帮助我的代码: views.pyPython 在数据库中保存表单数据,python,django,django-models,django-views,django-forms,Python,Django,Django Models,Django Views,Django Forms,您好,我是Django的新手,我已经创建了一个可用的房屋张贴表单,但我无法将输入的数据存储在数据库中。我使用了if form.is_有效和form.cleaned_数据请我需要帮助我的代码: views.py def public(request): form = PublicationForm() if request.method == 'POST': form = PublicationForm(request.POST, request.FILES) if form.is
def public(request):
form = PublicationForm()
if request.method == 'POST':
form = PublicationForm(request.POST, request.FILES)
if form.is_valid():
first_name=form.cleaned_data['first_name']
last_name=form.cleaned_data['last_name']
agency_name=form.cleaned_data['agency_name']
city=form.cleaned_data['city']
categories=form.cleaned_data['categories']
status=form.cleaned_data['status']
phone_number_1=form.cleaned_data['phone_number_1']
phone_number_2=form.cleaned_data['phone_number_2']
description=form.cleaned_data['description']
image_one=form.cleaned_data['image_one']
pub = Publication.objects.create(
first_name=first_name,
last_name=last_name,
agency_name=agency_name,
city=city,
categories=categories,
status=status,
phone_number_1=phone_number_1,
phone_number_2=phone_number_2,
description=description,
image_one=image_one
)
pub.save()
return HttpResponse("Publication réussie")
else:
form = PublicationForm()
return render(request, 'pub/public.html', {'form':form})
这是我的模板视图,我使用了django crispy表单模块
public.html
<form method="POST" enctype="multipart/form-data " class="form-block ">
{% csrf_token %} {{ form.non_field_errors }}
<div class="form-row">
<div class="col-md-4 mb-3">
{{ form.first_name.errors }}
<label for="{{ form.first_name.id_for_label }} "></label> {{ form.first_name|as_crispy_field }}
</div>
<div class="col-md-4 mb-3">
{{ form.last_name.errors }}
<label for="{{ form.last_name.id_for_label }} "></label> {{ form.last_name|as_crispy_field }}
</div>
<div class="col-md-4 mb-3">
{{ form.agency_name.errors }}
<label for="{{ form.agency_name.id_for_label }} "></label> {{ form.agency_name|as_crispy_field }}
</div>
<div class="col-md-4 mb-3">
{{ form.city.errors }}
<label for="{{ form.city.id_for_label }} "></label> {{ form.city|as_crispy_field }}
</div>
<div class="col-md-4 mb-3">
{{ form.categories.errors }}
<label for="{{ form.categories.id_for_label }} "></label> {{ form.categories|as_crispy_field }}
</div>
<div class="col-md-4 mb-3">
{{ form.status.errors }}
<label for="{{ form.status.id_for_label }} "></label> {{ form.status|as_crispy_field }}
</div>
<div class="col-md-6 mb-3">
{{ form.phone_number_1.errors }}
<label for="{{ form.phone_number_1.id_for_label }} "></label> {{ form.phone_number_1|as_crispy_field }}
</div>
<div class="col-md-6 mb-3">
{{ form.phone_number_2.errors }}
<label for="{{ form.phone_number_2.id_for_label }} "></label> {{ form.phone_number_2|as_crispy_field }}
</div>
<div class="col-md-12 mb-3">
{{ form.description.errors }}
<label for="{{ form.description.id_for_label }} "></label> {{ form.description|as_crispy_field }}
</div>
<div class="col-md-6 mb-3">
{{ form.image_one.errors }}
<label for="{{ form.image_one.id_for_label }} "></label> {{ form.image_one|as_crispy_field }}
</div>
</div>
<button type="submit " class="btn btn-outline-primary btn-lg btn-block">Publier</button>
</form>
您有一个模型表单,它是一个连接到您的模型的表单。 您所做的是取出所有用户输入并尝试使用它创建一个对象。 在我的示例中,您只需保存连接到模型的表单输入
编辑: 将消息添加到
views.py
重定向将输入放入url.py的路径名
信息链接:
重定向链接:
#模板
{%if消息%}
{消息%中的消息为%s}
{%endif%}
{%endfor%}
我建议如下:
def public(request):
form = PublicationForm(request.POST or None, request.FILES or None)
if form.is_valid():
pub = form.save()
return HttpResponse("Publication réussie")
return render(request, 'pub/public.html', {'form':form})
现在,我想被重定向到同一页的消息。。。我该怎么做?添加消息并重定向到答案中@达克鲁兹威尔弗里德酒店
#Views.py
from django.contrib import messages
from django.shortcuts import redirect
def public(request):
form = PublicationForm()
if request.method == 'POST':
form = PublicationForm(request.POST, request.FILES)
if form.is_valid():
form.save()
messages.success(request, 'Your password was updated successfully!')
return redirect('index')
else:
form = PublicationForm()
return render(request, 'pub/public.html', {'form':form})
#template
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li class="{{ message.tags }}">{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
def public(request):
form = PublicationForm(request.POST or None, request.FILES or None)
if form.is_valid():
pub = form.save()
return HttpResponse("Publication réussie")
return render(request, 'pub/public.html', {'form':form})