如何在表单中设置默认值



我正在构建一个BlogApp,我被卡住了一个问题。

我想做什么:-

我试图在forms.py中为Form设置Default Value

views.py

def new_topic(request,user_id):
profiles = get_object_or_404(Profile,user_id=user_id)
if request.method != 'POST':
form = TopicForm()
else:
form = TopicForm(data=request.POST)
new_topic = form.save(commit=False)
new_topic.owner = profile
new_topic.save()
return redirect('mains:topics',user_id=user_id)
#Display a blank or invalid form.
context = {'form':form}
return render(request, 'mains/new_topic.html', context)

forms.py

class TopicForm(forms.ModelForm):
class Meta:
model = Topic
fields = ['topic_no','topic_title']

What have i try:-

我也用了initial,但这对我不起作用。

form = DairyForm(request.POST,request.FILES,initial={'topic_title': 'Hello World'})

在浏览器中打开表单时默认值不显示

我不知道该怎么办

如有任何帮助,不胜感激。

提前感谢

需要在GET方法中传递initial,如下所示:

if request.method == 'GET':
form = TopicForm(initial={'topic_title': 'Hello World'})
else:

更多信息请参见文档。

如果您希望任何特定实例为默认值,则必须使用instance=TopicInstance。或者你想要其他的首字母你应该像这样传递

def new_topic(request,user_id):
profiles = get_object_or_404(Profile,user_id=user_id)
if request.method != 'POST':
form = TopicForm(initial={'topic_title': 'Hello World'})#When displaying it for first time
else:
form = TopicForm(data=request.POST)
new_topic = form.save(commit=False)
new_topic.owner = profile
new_topic.save()
return redirect('mains:topics',user_id=user_id)
#Display a blank or invalid form.
context = {'form':form}
return render(request, 'mains/new_topic.html', context)

最新更新