I am trying to use a ModelForm
to create a new model in my database. The thing is, it's not saving it to there when I call form.save(commit=True)
.
I am using Elastic Beanstalk (the free tier) to host my website. I feel like this has something to do with the problem.
This is my 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)
This is my views.py
file:
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(),
})
Has anyone else had this error?
source https://stackoverflow.com/questions/75262493/form-savecommit-true-not-saving-to-database
Comments
Post a Comment