Почему django-split-json-widget не может использоваться в моей model.form
Я пробовал много раз, но похоже, что виджет не работает. На моей странице ничего нет. Я использую jsonfield для сохранения данных в json, теперь я хочу преобразовать эти json данные в html форму ввода, и я нашел django-split-json-widget. Я пытался использовать его, но не знаю, в чем проблема
views.py
class Message(models.Model):
myQOS = (
('0','0'),
('1','1'),
('2','2'),
)
name = models.CharField(max_length=200, null=True)
description = models.CharField(max_length=300, null=True)
topic = models.CharField(max_length=300)
qos = models.CharField(max_length=200, choices=myQOS, null=True)
retain = models.BooleanField(null=True)
payload =jsonfield.JSONField(null=True)
def __str__(self):
return self.name
forms.py
class MessageForm(ModelForm):
def render(self, name, value, attrs=None):
attrs = {'class': 'special', 'size': '25'}
data = forms.CharField(widget=SplitJSONWidget(attrs=attrs, debug=True))
class Meta:
model = Message
fields = ('name','description', 'topic', 'qos', 'retain')
views.py
def Update_Message(request, pk):
messages = Message.objects.get(pk=pk)
json = messages.payload
messageform = MessageForm(request.POST or None, instance=messages, initial={'data': json})
print(messageform.data)
context = {'messageform' : messageform}
if request.method == 'POST':
if messageform.is_valid():
Mesform = messageform,save(commit=False)
Mesform.payload = messageform.cleaned_data['payload']
Mesform.save()
return redirect('/Update_Message/{}'.format(messages.id))
return render(request, 'apps/Update_Message.html',context)
html
<a href="{% url 'MessageList' %}">back to list</a>
<form method="POST">
{% csrf_token %}
{{ messageform.payload }}
<input type="submit" value='Update' class="buttonupdate">
</form>