我在数据库中存储了一些项目/列表,存储为['第一个表单字段','第二个输入字段']
我希望一列的所有这些项目作为我前端 html 页面中的列表 我收到的元素为
ff= form_fields.objects.all()
return render(request,'user/index.html',{'message':welcome,'ff':ff})
索引:
{% for x in ff%}
<tr>
<td>
{{ x.id}}
</td>
<td>
{{ x.name }}
</td>
<td>
{% for y in x.text_field %}
<label>{{ y }}</label>
{% endfor %}
</td>
<td>
模型
class form_fields(models.Model):
id = models.AutoField(primary_key=True)
form_name = models.CharField(max_length= 50, null=True)
text_field = models.CharField(max_length=255, null= True)
我希望保存的列表作为列表出现在该表中。
最佳答案
创建自己的ListField
字段来解决此问题
from django.db import models
import ast
class ListField(models.TextField):
__metaclass__ = models.SubfieldBase
description = "form fields"
def __init__(self, *args, **kwargs):
super(ListField, self).__init__(*args, **kwargs)
def to_python(self, value):
if not value:
value = []
if isinstance(value, list):
return value
return ast.literal_eval(value)
def get_prep_value(self, value):
if value is None:
return value
return unicode(value)
def value_to_string(self, obj):
value = self._get_val_from_obj(obj)
return self.get_db_prep_value(value)
class Form_Fields(models.Model):
id = models.AutoField(primary_key=True) ## id builtin in django models
form_name = models.CharField(max_length= 50, null=True)
form_fields = ListField()
[1]:Form_Fields.objects.create(form_name="test", form_field=['First Form Field', 'Second input Field'])
{% for x in ff%}
<tr>
<td>
{{ x.id}}
</td>
<td>
{{ x.form_name }}
</td>
<td>
{% for y in x.form_fields %}
<label>{{ y }}</label>
{% endfor %}
</td>
<td>
</tr>
{% endfor %}
关于python - 如何在 python - Django 中从数据库获取列表到 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42359792/