我的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()
查看和模板:
在克隆的情况下,我通过event_id
从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
并将其加载到表单中,当我在模板上显示表单时,它下面有一个验证错误...但是用户只是打开页面......
答案 0 :(得分:1)
你可以这样做:
form = EventForm(initial=map)