Django python动态设置初始值以形成
我正在构建一个用于库存控制的小型web服务。作为这项工作的一部分,我想填充任何库存项目的详细视图。这就是我迄今为止所做的:Django python动态设置初始值以形成,python,django,django-forms,Python,Django,Django Forms,我正在构建一个用于库存控制的小型web服务。作为这项工作的一部分,我想填充任何库存项目的详细视图。这就是我迄今为止所做的: 类产品更新(forms.Form): 产品代码=forms.CharField( 最大长度=10, attrs={“占位符=Readonly=True” ) Name=forms.CharField(最大长度=100) Description=forms.Textarea(attrs={“Rows”:3}) price=forms.DecimalField() mini=f
类产品更新(forms.Form):
产品代码=forms.CharField(
最大长度=10,
attrs={“占位符=Readonly=True”
)
Name=forms.CharField(最大长度=100)
Description=forms.Textarea(attrs={“Rows”:3})
price=forms.DecimalField()
mini=forms.IntegerField()
Max=forms.IntegerField()
如何向表单传递参数?您可以通过访问request.POST访问视图中的表单数据
def actionView(request, product_id):
product = Product.objects.get(id=product_id)
form = ProductUpdate(request.POST, instance=product_id)
form.save(commit=False) #Do this if you want to make changes to some value
form.price = 112233
updated_form = form.save()
您应该改用:
现在,您可以轻松地将模型实例传递到表单:
def some_view(request):
instance = Product.objects.first()
form = ProductUpdate(request.POST or None, instance=instance)
context = {'form':form}
return render(request, 'some_template.html', context)
def some_view(request):
queryset = Product.objects.all()
form = ProductFormSet(request.POST or None, queryset=queryset)
if request.method == 'POST' and form.is_valid():
form.save()
context = {'form':form}
return render(request, 'some_template.html', context)
如果要以相同的形式显示多个产品,则需要使用:
现在,在your views.py中,您可以将QuerySet
传递给表单:
def some_view(request):
instance = Product.objects.first()
form = ProductUpdate(request.POST or None, instance=instance)
context = {'form':form}
return render(request, 'some_template.html', context)
def some_view(request):
queryset = Product.objects.all()
form = ProductFormSet(request.POST or None, queryset=queryset)
if request.method == 'POST' and form.is_valid():
form.save()
context = {'form':form}
return render(request, 'some_template.html', context)
如果您使用的是详细视图,那么您可能希望使用模型表单,并让django处理90%的逻辑,以便使用现有“对象”中的数据正确填充表单,而OP并不需要这些数据。这是在更改正在创建的对象,而不是基于现有DB条目显示的表单。