I`m mit Django 1.9 mit diesem library, wie folgend:Django wie bearbeiten/json speichern mit SplitJSONWidget
models.py:
class Policy(models.Model):
config = JSONField(max_length=50000, blank=True)
name = models.CharField(max_length=200, blank=False, unique=True, default="")
def __unicode__(self):
return self.name
forms.py:
class PolicyForm(forms.ModelForm):
class Meta:
model = Policy
fields = ('name',)
attrs = {'class': 'special', 'size': '25'}
data = forms.CharField(widget=SplitJSONWidget(attrs=attrs, debug=True))
views.py:
def policy_new(request):
json = {
"all": {
"active": True
}
}
if request.method == "POST":
form = PolicyForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.config = form.data
post.save()
return redirect('ui:config-list')
else:
form = PolicyForm(initial={'data': json})
template = 'api/policy_template.html'
context = RequestContext(request, {'form': form})
return render_to_response(template, context)
def policy_edit(request, pk):
policy = get_object_or_404(Policy, pk=pk)
if request.method == "POST":
form = PolicyForm(request.POST, instance=policy)
if form.is_valid():
post = form.save(commit=False)
post.config = form.data
post.save()
return redirect('ui:config-list')
else:
form = PolicyForm(instance=policy, initial={'data': policy.config})
return render(request, 'api/policy_template.html', {'form': form})
Ich habe ein Problem mit dem Speichern und Bearbeiten der json:
Ersparnis:
Bearbeiten erstes Mal:
Bearbeiten zweites Mal:
Wie Sie die json sehen kann, ist mit sich selbst verkettet und das Hinzufügen des CRF-Token und den Namen der json (wtf?). Was ist falsch an den Speicher- und Bearbeitungsfunktionen?