citusdata / citusdata/django-multitenant
ManyToMany field between the TenantModel class and a Non Tenant model crashes on .add()
- Dominant language
- Python
- Stars
- 823
- Forks
- 126
- PR merge metrics
- No merged PRs in 30d
Description
It seems that having a ManyToMany field between the TenantModel class and a Non Tenant model results in a crash when trying to add items in the collection.
This easily reproductible from a fresh Django install:
models.py
```
from django.contrib.auth.models import User
from django.db import models
from django_multitenant.models import TenantModel
# Create your models here.
class Tenant(TenantModel):
name = models.CharField(max_length=50)
users = models.ManyToManyField(User,
related_name="tenants")
class TenantMeta:
tenant_field_name = "id"
```
test.py
```
from django.contrib.auth.models import User
from django.test import TestCase
from django_multitenant.utils import set_current_tenant
from multitenancy.models import Tenant
# Create your tests here.
class TestTenant(TestCase):
def test_tenant_users(self):
tenant = Tenant.objects.create(name="tenant")
set_current_tenant(tenant)
user = User.objects.create(username="test", email="test")
tenant.users.add(user)
self.assertEqual(user.tenants.first(), tenant)
```
The error is :
```
AttributeError: 'Tenant_users' object has no attribute 'tenant_field'
```
I don't think the link table betweek User and Tenant should have a tenant_field.
Contributor guide
Assessment
This issue has not been assessed yet.