Как отобразить в шаблонах Django встроенные модели? - PullRequest
0 голосов
/ 27 октября 2018

models.py

class Decomposicao(models.Model):    
    tirosina = models.BooleanField('tirosina')
    fenilalanina = models.BooleanField('fenilalanina')
    class Meta:
        abstract = True


class SDF(models.Model):
    numero = models.IntegerField('SDF', unique=True, primary_key=True)

    decomposicao = models.EmbeddedModelField(
        model_container=Decomposicao,
    )

    data_insercao = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return str(self.numero)

views.py

def search(request):
    data = {}
    if request.method == 'GET':
        search = request.GET
        search = search['sdf']
        if search.startswith("SDF") or search.startswith("sdf"):
            sdf = SDF.objects.get(pk=search[3:])            
        else: 
            sdf = SDF.objects.get(pk=search)
    data['sdf'] = sdf
    data['numero'] = format(sdf.numero, '04d')
    return render(request, 'app/busca.html', data)

Я использую mongodb и django, поэтому я решил использовать djongo в качестве соединителя - djongo doc - уже было сказано, что я пытаюсь отобразить содержимое, обнаруженное в запросах, в шаблонах django - busca.html, - но не могу найти способ отображения встроенных моделей.

busca.html

{% extends 'app/base.html' %}

{% block cabecalho %}
{% load staticfiles %}
<title>SDF{{ numero }}</title>
{% endblock%}

{% block conteudo %}

<section class="bg-light">
<div class="container ">
    <div class="col-lg-12 h-100 text-center text-lg-left my-auto">
        <h1 class="text-muted medium mb-4 mb-lg-0">SDF{{ numero }</h1>
        <br>
        {{ sdf }}
    </div>
</div>
</section>
{% endblock %}

При этом отображается только номер - "Numberro" - sdf.

Спасибо.

1 Ответ

0 голосов
/ 27 октября 2018

{{ sdf }} вызывает метод __str__ вашей модели, который возвращает число как определено. Для отображения всех полей используйте {{ sdf.numero }}, {{ sdf.decomposicao }}, {{ sdf.data_insercao }}. Я считаю, что вы можете получить доступ к полям встроенной модели с точечной нотацией, например, {{ sdf.decomposicao.tirosina }}.

...