Python 如何在表单中设置默认值
我正在开发一个博客应用程序,但我遇到了一个问题 我想做的事情:- 我正在尝试在forms.py中为Python 如何在表单中设置默认值,python,django,django-views,django-forms,Python,Django,Django Views,Django Forms,我正在开发一个博客应用程序,但我遇到了一个问题 我想做的事情:- 我正在尝试在forms.py中为表单设置默认值 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 = TopicFo
表单
设置默认值
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']
我试过什么:-
我也使用了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:
更多信息可以在中找到。您需要在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)
如果希望任何特定实例成为默认实例,则必须使用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)
在GET方法的情况下,您是否传递了表单的首字母(即,如果request.method!=“POST”:
),则在这一行之后?从您的示例来看,您似乎仅将其用于post请求。初始表单显示在GET请求上,而不是post。在GET方法的情况下,您是否为表单传递了初始值(即,在此行之后if request.method!=“post”:
)?从您的示例来看,您似乎仅将其用于post请求。初始表单显示在GET请求上,而不是post感谢上。它起作用,但当我从表单中隐藏主题标题时,它不会保存Hello World(我签入管理)。是否有一种方法,隐藏表单字段可以保存默认值?您可以在模型字段中添加默认值,以在保存隐藏字段时存储默认值。Hanks,这是可行的,但当我从表单中隐藏主题标题时,它不会保存Hello World(我在管理员中签入)。是否有一种方法,隐藏表单字段可以保存默认值?您可以在模型字段中添加默认值来存储隐藏字段保存时的默认值Hanks,it workedWelcome:)@ProgamThank,it workedWelcome:)@Progam