2
'설정 편집'키/값 페이지를 만드는 편리한 솔루션을 찾고 있습니다.키/값 매개 변수 목록 편집 Formset
매개 변수 모델 :
class Parameter(models.Model):
key = models.CharField(max_length=50)
value = models.CharField(max_length=250)
showInUI = models.SmallIntegerField()
초기 키/값이 이미 테이블에 삽입됩니다. 내가 그들을로드하고이 선을 사용하여 모델의 formset 공장을 사용하여 보내 해당 formset가 표시 될 때
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))
템플릿면은, 키와 값이 입력으로 표시됩니다.
입력란에 읽기 전용 레이블 및 값으로 양식 키를 표시하는 편리한 방법을 찾고 싶습니다. 그리고 제출할 때 장고 표준에 따라 유효성을 검사하십시오.
저는 많은 것들을 읽었습니다. 솔루션이 맞춤 위젯일지도 모르겠지만 신뢰할 수있는 솔루션을 찾을 수 있습니다.
읽어 주셔서 감사합니다.
편집 : 당신이 값을 편집 할 수 원하지 않는 경우
작업 솔루션
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>
감사합니다. 쉽게 구현하고 사용할 수있는 솔루션입니다. 작업 코드로 내 대답을 편집했습니다. –