# Pastebin OeIjALuj # Model class Node(models.Model): hostname = models.CharField(max_length=255, unique=True) #-- CUT FOR BREVITY -- site = models.ForeignKey(Site, on_delete=models.SET_NULL, null=True) class Site(models.Model): name = models.CharField(max_length=255, unique=True) #-- CUT FOR BREVITY -- def __str__(self): return self.name # View class IndexView(LoginRequiredMixin, generic.ListView): template_name = "nodes/index.djhtml" context_object_name = 'all_nodes' def get_queryset(self): return Node.objects.all() # Template {% extends 'base/base.djhtml' %} {% block content %} #-- CUT FOR BREVITY -- {% if all_nodes %} {% regroup all_nodes by site as nodes %} {% for site in nodes %}
| # | hostname | driver | group | |
|---|---|---|---|---|
| {{ node.id }} | {{ node.hostname }} | {{ node.driver }} | {{ node.group.name }} |
no nodes available
{% endif %} {% endblock %}