Как сделать обратный просмотр поля m2m в шаблоне django - PullRequest
0 голосов
/ 16 января 2020

Здравствуйте, я пытался сделать обратный m2m запрос и сосчитать, но мне не удалось это сделать. Методы, предложенные в других публикациях, похоже, не работают, вот мой код в настоящее время.

Это соответствующий бит в моем HTML:

    <table id='myTable' class="display ui celled table" style="width:100%">
        <thead>
            <tr>
                <th>ID</th>
                <th>Company</th>
                <th>Company Address</th>
                <th>Telephone</th>
                <th>Total Projects</th>
            </tr>
        </thead>

            {% for customer in customers %}
                <tr>
                    <td>{{ customer.customer_id }}</td>
                    <td><a href="{% url 'customer-profile' customer.customer_id %}" class='btn w3-teal'>{{ customer.customer_name }}</a></td>
                    <td>{{ customer.address }}</td>
                    <td>{{ customer.telephone_number}}</td>
                    {% for project in customer.salesProject_set.all %}
                    <td>{{project.count}}</td>
                    {%endfor%}
                </tr>
            {% endfor %}
    </table>
</div>

Это мой взгляд:

class CustomerView(ListView):


 model = CustomerInformation
  template_name = 'rnd/customers_all.html'
  context_object_name = 'customers'
  def get_context_data(self, **kwargs):
    context = super(CustomerView, self).get_context_data(**kwargs)
    context['customers'] = CustomerInformation.objects.all()
    return context

Это мои модели:

class SalesProject(models.Model):
    customer_information = models.ManyToManyField('CustomerInformation')


class CustomerInformation(models.Model):
    customer_id = models.AutoField(primary_key=True)
    customer_name = models.CharField(max_length=100, default='Lee Ji Eun')
    telephone_number = models.CharField(max_length=100)

Я намерен получить доступ к полю m2m в шаблоне, чтобы отобразить соответствующее количество проектов, связанных с этой компанией, но результаты ничего не отображает без каких-либо ошибок. Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Я думаю, что вы хотите сделать:

<td>{{customer.salesproject_set.all.count}}</td>

Вместо:

{% for project in customer.salesProject_set.all %}
    <td>{{project.count}}</td>
{%endfor%}
0 голосов
/ 16 января 2020
            {% for customer in customers %}
                <tr>
                    <td>{{ customer.customer_id }}</td>
                    <td><a href="{% url 'customer-profile' customer.customer_id %}" class='btn w3-teal'>{{ customer.customer_name }}</a></td>
                    <td>{{ customer.address }}</td>
                    <td>{{ customer.telephone_number}}</td>
                    {% for project in customer.salesproject.customer_information.all %}
                    <td>{{project.count}}</td>
                    {%endfor%}
                </tr>
            {% endfor %}

Вы можете напрямую позвонить по этому пути

...