0
0 комментариев

Есть модели Network и ARM

class ARM (models.Model):
    class Meta():
        db_table = 'arm'
    arm_configuration_name = models.TextField()
    arm_network = models.ManyToManyField(Network)
 
class Server (models.Model):
    class Meta():
        db_table = 'server'
    server_name = models.TextField()

Задача: В шаблоне нужно вывести только те АРМ, которые связаны с Network.

Пытался сделать это в самом шаблоне:

            {% for net in networks %}
                <div>
                    {% for obj in net_id.arm_set %}
                        <p>{{ obj.arm_configuration_name }}</p>
                    {% endfor %}
                </div>
            {% endfor %}

Ещё пытался написать свой фильтр чтобы использовать в шаблоне. Создал файл

from django import template
from django.template.defaultfilters import stringfilter
from test_app.models import Network
 
register = template.Library()
 
@register.filter
@stringfilter
def arms_in_network(value):
    network = Network.objects.get(id = value)
    arms = network.arm_set.all()
    return arms'

Но тут другая проблема — при запуске выдаёт ошибку: django.core.exceptions.AppRegistryNotReady: Apps aren’t loaded yet. При этом приложение прописано в settings INSTALLED_APPS. И ещё я выяснил, что эта ошибка из-за импорта Network.

Подскажите пожалуйста как решить проблему. Буду рад если предложите другие решения.


Добавить комментарий