gpt4 book ai didi

python - django + 获取模型,最初无需以表单验证

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:58 26 4
gpt4 key购买 nike

我的 dJango 应用程序中有一个名为 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()

View 和模板:

在克隆的情况下,我通过 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 对象中的值与模型中的值相同。在克隆的情况下,假设我从 map 中删除 title 并将其加载到表单中,当我在模板上显示表单时,它下面有一个验证错误......但是用户刚刚打开页面...

最佳答案

你可以这样做:

form = EventForm(initial=map)

关于python - django + 获取模型,最初无需以表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022208/

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