我正在构建一个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)