citusdata / citusdata/django-multitenant

ManyToMany field between the TenantModel class and a Non Tenant model crashes on .add()

Open
#163 5 comments 3 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.