数据访问&在Django中显示

时间:2018-06-14 11:15:21

标签: django database

  • 我在另一个模板中访问数据库数据时遇到问题 与django管理不同。在管理页面我 得到结果:

enter image description here

  • 但是当我尝试在另一个模板中显示它们时:

enter image description here(无结果)

  • 以下是我的 urls.py 管理页面和模板网址的显示方式:

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('lista/', views.entitats, name = 'lista_entitats')
    ]
    
  • 以下是我的 admin.py 对实体列表和注册的调用方式:

    class EntitatAdmin(admin.ModelAdmin):
        list_display = ('codi', 'nom', 'adreça', 'cp', 'correu', 'inspector')
        inlines = [DiaLliureDisposicioInline, VisitesDirectorCentreInline, ExitEscolarInline, ObresCentreInline, OfertaEstudisInline, NEE_alumnatInline, FormacioInline, ProjectesInline, ProfessorsInline, DespesesFuncionamentInline]
        search_fields=('nom',)
        list_per_page=5
    
    admin.site.register(Entitat, EntitatAdmin)
    
  • 在我的 views.py 中,这就是我要求的模板(以及我觉得我没有得到数据库信息的地方):

    from entitats.models import Entitat
    
    def entitats(request):
        lista_entitats = Entitat.objects.all()
        context = {'llista_entitats': lista_entitats}
        return render(request, 'entitats.html', context)
    
  • 最后是我的模板,我尝试显示实体列表:

    {% if context.llista_entitats %}
        <ul>
            {% for question in objects_list %}
                <li><a href="/admin/entitats/entitat/{{ entitat.id }}/">{{ question.question_text }}</a></li>
            {% endfor %}
        </ul>
    {% else %}
        <p>Ninguna entidad disponible.</p>
    {% endif %}
    

对不起,如果它很潮,如果没有必要,我会删除,并提前谢谢。

1 个答案:

答案 0 :(得分:0)

模板中不需要id's语法来检查变量值,只需使用:

context.variable_name

而不是

{% if llista_entitats %}

此外,由于您的变量为{% if context.llista_entitats %} ,因此应为:

llista_entitats

注意我将{% for question in llista_entitats %} <li><a href="/admin/entitats/entitat/{{ question.id }}/">{{ question.question_text }}</a></li> {% endfor %} 替换为objects_list,将llista_entitats替换为entitat.id