Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在表单中设置默认值_Python_Django_Django Views_Django Forms - Fatal编程技术网

Python 如何在表单中设置默认值

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

我正在开发一个博客应用程序,但我遇到了一个问题

我想做的事情:-

我正在尝试在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 = 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