[英]'form.save(commit=True)' not saving to database
我正在尝试使用 ModelForm 在我的数据库中创建一个新的ModelForm
。 问题是,当我调用form.save(commit=True)
时,它并没有将它保存到那里。
我正在使用 Elastic Beanstalk(免费套餐)来托管我的网站。 我觉得这与问题有关。
这是我的forms.py
:
from datetime import date
from .models import Itinerary
class CreateItinerary(forms.ModelForm):
class Meta:
model = Itinerary
exclude = ["sights"]
destination = forms.CharField(max_length=100)
start = forms.DateField(widget=forms.NumberInput(attrs={'type': 'date'}), initial=date.today)
end = forms.DateField(widget=forms.NumberInput(attrs={'type': 'date'}))
class FindPlaces(forms.Form):
types = ((1, "restaurants"), (2, "attractions"), (3, "parks"),
(4, "national parks"), (5, "clothing stores"), (6, "malls"),
(7, "department stores"), (8, "stadiums"))
place_type = forms.ChoiceField(choices=types)
这是我的views.py
文件:
from django.views import generic
from .models import *
from .forms import *
class createItinerary(generic.TemplateView):
template = "itineraries/create.html"
def get(self, request, *args, **kwargs):
return render(request, self.template,
{
"form" : CreateItinerary(request.POST, request.FILES),
})
def post(self, request, *args, **kwargs):
form = CreateItinerary(request.POST)
if form.is_valid():
new = form.save(commit=True)
return redirect("/sights/")
else:
form = CreateItinerary
return render(request, self.template,
{
"form" : form,
})
def plan_redirect(request, id):
return redirect("/plan/%s" % id, request)
class plan(generic.TemplateView):
find_places_form_class = FindPlaces
template = "itineraries\plan.html"
def get(self, request, id, *args, **kwargs):
object = get_object_or_404(Itinerary, pk=id)
return render(request, self.template,
{
"find_places_form" : self.find_places_form_class(),
"object" : object,
"trip_length" : object.get_trip_length(),
})
有没有其他人有这个问题?
在generic.TemplateView
中,您只能使用GET
方法。 尝试使用generic.FormView
来实现它。
我希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.