По какой причине Django не получает имя хоста? Django multi tenancy
У меня проблема с отображением элементов базы данных в шаблоне our_team
. Я могу получить все элементы от членов (используя .all()
), но когда я фильтрую с помощью tenant
, я не получаю ничего вообще. Может быть, я неправильно получаю имя хоста (субдомена)? Вот мой код:
views.py
from django.shortcuts import render
from .models import Member
from .utilities import get_tenant
def our_team(request):
tenant = get_tenant(request)
members = Member.objects.filter(tenant=tenant)
return render(request, 'tenant/our_team.html', {'tenant': tenant, 'members': members})
utilities.py
from .models import Tenant
def get_hostname(request):
return request.get_host().split(':')[0].lower()
def get_tenant(request):
hostname = get_hostname(request)
subdomain = hostname.split('.')[0]
return Tenant.objects.filter(subdomain=subdomain).first()
<
from django.db import models
class Tenant(models.Model):
name = models.CharField(max_length=100)
subdomain = models.CharField(max_length=100, unique=True)
def __str__(self):
return self.name
class TenantAwareModel(models.Model):
tenant = models.ForeignKey(Tenant, on_delete=models.CASCADE)
def __str__(self):
return self.tenant
class Member(TenantAwareModel):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
<
<h1>{{ tenant.name }}</h1>
<h2>Our Members</h2>
<ul>
{% for member in members %}
<li>{{ member.name }}</li>
{% endfor %}
</ul>