我有这个模型,我需要的是时间是唯一的,因为它是一个预订,所以当我创建一个新的预订,我如何检查,如果该时间已经挑选
型号.py
class Reserva(models.Model):
horario = models.DateTimeField(auto_now_add=False, auto_now=False)
cancha = models.ForeignKey('Cancha', on_delete=models.CASCADE)
lote = models.IntegerField()
视图.py
class ReservasCreateView(generic.edit.CreateView):
model = Reserva
template_name = 'reservar.html'
fields = ['horario', 'cancha', 'lote']
预订.html
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Reservar">
</form>
我还有一个疑问,如果我想更改表单中的某些输入类型,我应该保留默认的CreateView并在视图上修改它,还是在forms.py中创建一个自定义表单并将其作为form\u类传递。有什么建议?谢谢
您可以通过添加以下内容,在数据库级别强制创建保留的日期为
unique
:或者,您可以重写
form_valid()
方法,以检查是否选取了日期,并引发异常或任何您想要的结果:然后在模板中添加消息框架,如以下示例所示:
有关更多信息,请访问django official documentation
相关问题 更多 >
编程相关推荐