python - how can model: class1 or class2 have relation with class3 but both Simultaneous don't have relation? -


i have 3 classes:

class 1 has 1 many relation class 3;

class 2 has 1 many relation class 3:

class 1 , 2 not related.

how can model database?

busy cat

option 1

set foreignkey field null if not needed. may validate in clean() method.

class a(models.model):     # ...     pass  class b(models.model):     # ...     pass  class c(models.model):     # ...     fka = models.foreignkey(a, null=true) # null if not needed     fkb = models.foreignkey(b, null=true) # null if not needed     # ...       def clean(self):         # 1 fk allowed         if self.fka , self.fkb:             raise validationerror("relation either or b - not both!")         # 1 fk required         if not self.fka , not self.fkb:             raise validationerror("relation or b required!") 

option 2

work model inheritance

class a(models.model):     # ...     pass  class b(models.model):     # ...     pass  class abstractc(models.model):     # ...      class meta:         # ...         abstract = true  class ctoa(abstractc)     # ...     fka = models.foreignkey(a)     # ...  class ctob(abstractc)     # ...     fkb = models.foreignkey(b)     # ... 

database migration:

$ python manage.py makemigrations

$ python manage.py migrate


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -