2
我正在尋找一個方便的解決方案來創建「編輯設置」鍵/值頁面。編輯鍵/值參數列表Formset
參數型號:
class Parameter(models.Model):
key = models.CharField(max_length=50)
value = models.CharField(max_length=250)
showInUI = models.SmallIntegerField()
初始密鑰/值已經插入表中。 予加載它們,並使用模型表單集工廠使用這些線發送它們:
ParameterFormSet = modelformset_factory(Parameter, extra=0, fields=('key', 'value'))
parameterFormSet = ParameterFormSet(queryset=Parameter.objects.filter(showInUI=1))
return render_to_response('config.html', {'parameterFormSet': parameterFormSet}, context_instance=RequestContext(request))
模板側,則顯示錶單集時,鍵和值被示出爲輸入。
我想找一種方便的方式來顯示形式鍵作爲只讀標籤和值作爲輸入。並且,當提交時,根據django標準驗證它們。
我讀過很多東西,我想解決方案可能是一個自定義小部件,但我可以找到一個可靠的解決方案。
感謝您的閱讀。
編輯:
工作液
views.py
def config(request):
ParameterFormSet = modelformset_factory(Parameter, extra=0, fields=('value',))
if request.method == "POST":
try:
formset = ParameterFormSet(request.POST, request.FILES)
except ValidationError:
formset = None
return HttpResponse("ko")
if formset.is_valid():
formset.save()
return HttpResponse("ok")
#ParameterFormSet = modelformset_factory(Parameter, extra=0, fields=('value',))
parameterFormSet = ParameterFormSet(queryset=Parameter.objects.filter(showInUI=1))
return render_to_response('config.html', {'parameterFormSet': parameterFormSet}, context_instance=RequestContext(request))
模板
<form method="post">
{% csrf_token %}
{{ parameterFormSet.management_form }}
{% for form in parameterFormSet %}
<div>
{{ form.instance.key }}
{{ form }}
</div>
{% endfor %}
<input type="submit" />
</form>
感謝,易於實施和工作的解決方案。 用工作代碼編輯我的答案。 –