gpt4 book ai didi

Django模型表单集预填充值问题

转载 作者:行者123 更新时间:2023-12-02 05:41:01 24 4
gpt4 key购买 nike

我正在尝试将模型表单集与 Django 一起使用。当我加载表单模板时,我看到它已填充了以前的值。是否有我应该停止的缓存机制,或者什么?

感谢您的帮助,这是我的代码:

模型.py

class FooModel( models.Model ):

a_field = models.FloatField()
b_field = models.FloatField()

def __unicode__( self ):
return self.a_field

表单.py

from django.forms.models import modelformset_factory

FooFormSet = modelformset_factory(FooModel)

View .py

def foo_func(request):

if request.method == 'POST':

formset = FooFormSet(request.POST, request.FILES, prefix='foo_prefix' )

if formset.is_valid():

formset.save()

return HttpResponseRedirect( '/true/' )

else:

return HttpResponseRedirect( '/false/' )

else:

formset = FooFormSet(prefix='foo_prefix')

variables = RequestContext( request , { 'formset':formset , } )

return render_to_response('footemplate.html' , variables )

模板:

<form method="post" action=".">
{% csrf_token %}
<input type="submit" value="Submit" />
<table id="FormsetTable" border="0" cellpadding="0" cellspacing="0">
<tbody>
{% for form in formset.forms %}
<tr>
<td>{{ form.a_field }}</td>
<td>{{ form.b_field }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{{ formset.management_form }}
</form>

最佳答案

这里的主要问题是:

formset = FooFormSet(prefix='foo_prefix')

当您实例化 FooFormSet() 时,用于生成表单的 queryset 为(默认情况下):

FooModel.objects.all()

因此,如果您的数据库中已经有一些 FooModel(),它们将被列出。在这种情况下,您可以使用:

formset = FooFormSet(prefix='foo_prefix', queryset=FooModel.objects.none())

您可以在 Django 文档中查看有关此内容的更多信息:

http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-queryset

关于Django模型表单集预填充值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518898/

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