我的 dJango 应用中有一个模型,名为event
. 我希望用户能够克隆event
以创建新的,而不必从头开始——并非所有信息每次都会更改。
当我这样做时,当它加载克隆事件页面时,我在一些必填字段上遇到了验证错误,因为我没有复制现有的所有信息,而event
只是复制了一些字段。当页面首次加载(但用户尚未提交表单)时,未复制和必需的字段会引发验证错误。有没有办法使初始验证不发生?
[编辑]
Model:
class Event(models.Model):
class Meta:
db_table = 'event'
type = models.ForeignKey(EventType, default="0")
title = models.CharField(max_length=150, default='Event')
location = models.TextField()
description = models.TextField(max_length=1050)
start_time = models.DateTimeField()
end_time = models.DateTimeField()
视图和模板:
在克隆的情况下,我通过 do 获取事件event_id
to clone from Event.objects.get(id=event_id)
。获得对象后,我form
通过执行设置以下值:
map = {
'type': event.type.name,
'title': event.title,
'location': event.location,
'description': event.description,
'start_time': event.start_time,
'end_time': event.end_time
}
form = EventForm(map)
对象中的值form
与模型中的值同名。在克隆的情况下,假设我title
从地图中删除,并将其加载到表单中,当我在模板上显示表单时,它下面有一个验证错误......但是用户刚刚打开了页面...... .