数据库的字段在前端模板上显示为单词“ None”,但存在于数据库中

时间:2018-07-16 20:59:35

标签: django django-models django-templates python-3.6 django-2.0

在开发Django-python网络应用程序时,我遇到了最奇怪的事情。

我的数据库中有一个要在前端显示的字段。该字段是一个MultiSelectField,并且列表是从列表中填充的

models.py
# Other service areas
other_areas = MultiSelectField(choices = SERVICE_AREAS, max_length=360, 
default=None, null=True)

我的SERVICE_AREAS由类似这样的函数创建:

def get_service_areas():
    #SERVICE_AREAS = [('None', '-------------')]
    SERVICE_AREAS = []
    sas = service_area.objects.all()
    for s in sas:
        SERVICE_AREAS.append((s.name, s.name))
    return SERVICE_AREAS

我有一个表单,可以从中选择其他“服务区域”,并且所有内容均已正确提交到我的数据库(在pgadmin中,我看到了正确的值)

proof of ok values in DB

然后在模板的前端,我有以下代码来呈现数据:

index.html
<div class="email" style="padding-top: 10px;">{{c.service_area}}- {{c.service_area.said}} , Other SAID's: {{c.other_areas}}</div>

与此有关的怪异部分是,当数据实际显示在我的屏幕上时,它会多次显示为“ None”一词,该字段中存在逗号分隔的值。 (如果有3个服务区域,则将显示为“无”,“无”,“无”,如果有4个服务区域:“无”,“无”,“无”,“无”等) 我的其余数据正确显示在模板中。我有点沮丧,欢迎任何想法。

我在上面添加的图像的示例输出:

I have two values in the other_areas field (43006,43001) and it shows up like this

1 个答案:

答案 0 :(得分:0)

这里确实没有太多源代码。但是,这显然是在告诉您,那里什么也没有。您无法将对象从视图传递到前端,这会使那些模板标记显示None。由于您没有显示模型的真正含义,也不显示视图中呈现的数据,因此这里没有人可以为您提供帮助。我建议您发布代码,以便我们进一步了解如何为您提供帮助。