gpt4 book ai didi

python - Django 表单永远无效,因此不会保存到数据库

转载 作者:行者123 更新时间:2023-12-02 18:00:51 25 4
gpt4 key购买 nike

我正在创建一个包含日期、时间(带有选择的字符字段)、客户和餐厅的注册模型。我需要一些帮助来了解为什么即使我填写了模型表单也没有保存我的实例

模型.py

class reservation(models.Model):
TIMESLOTS = [
('11:00-1:00', '11:00-1:00'),
('01:00-3:00', '01:00-03:00'),
('03:00-05:00', '03:00-05:00'),
('05:00-07:00', '05:00-07:00'),
('07:00-09:00', '07:00-09:00')
]

date=models.DateField(null=True)
time=models.CharField(null=True,max_length=200,choices=TIMESLOTS)
customer=models.OneToOneField(User,null=True,on_delete=models.CASCADE)
restaurant=models.OneToOneField(Restaurantdetails,on_delete=models.CASCADE,null=True)

def __str__(self):
return self.restaurant.name

表单.py

class Reservationform(ModelForm):

class Meta:

model=reservation
fields=['date','time','restaurant']

views.py

def reservationcreator(request):
form=Reservationform()

if form.is_valid():
form = Reservationform(request.POST)

res=form.save()
res.customer=request.user
res.save()
messages.success(request, 'reservation created')
return redirect('menu')
else:
print('BS')
context = {'form': form}

return render(request,'userrestaurant/reservation.html',context)

最佳答案

您的表格将永远有效,因为您提供的是空表格。您需要将 request.POST 数据添加到该表单 before 您验证它:

def reservationcreator(request):
form=Reservationform(request.POST or None)

if form.is_valid():
res.customer=request.user
res=form.save()
messages.success(request, 'reservation created')
return redirect('menu')
else:
print('BS')
context = {'form': form}

return render(request,'userrestaurant/reservation.html',context)

关于python - Django 表单永远无效,因此不会保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74468354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com