python - 如何在 python - Django 中从数据库获取列表到 html?

标签 python django python-3.x django-models django-forms

我在数据库中存储了一些项目/列表,存储为['第一个表单字段','第二个输入字段']

我希望一列的所有这些项目作为我前端 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/

相关文章:

python - 从 pandas MultiIndex 中选择列

python - 非数据库驱动模型的 Django MVC 模式?

python - 如何根据 page1 上的选择在 page2 上生成动态 MultipleChoiceField 选项?

python - CUDA 不支持边界检查

python - 使用 Flag 时出现 ValueError

python - 在 Python 中就地替换文件中的文本

python - 删除 pandas python 中的方括号以导出到 csv

python - 用于计算特征值的多处理

python - 比较 panda 数据框中的值并返回新值

python - Django 找不到静态文件。需要第二双眼睛,我快疯了