Sorry for reviving an old topic, but I have a models.py file that is >15,000 lines and would like to chop it up (PyCharm is groaning under the weight!).
How would I handle the imports between the chopped-up files in a models module where the referenced foreign key model is in a different file? Is there a risk of circular imports? Thanks, Richard Brockie On Monday, February 1, 2021 at 11:45:25 PM UTC-8 [email protected] wrote: > So, > > Boney M's assumption here is correct. > > You just need to import all of your models in the __init__.py file using > relative imports, so for example: > > from .car import Car > > and so on. > > This works perfectly and I usually try to split the models in that way as > not to get a models.py that is over 10000 lines long. > > Regards, > > Andréas > > > Den tis 2 feb. 2021 kl 07:27 skrev Benny M <[email protected]>: > >> Just a thought, I haven’t tested this: you might be able to trick access >> to subdirectories by importing those models in the top-level >> models/__init__.py - now that I think about it, you might have to do that >> with all the models... so your __init__ file would say something like: >> >> ``` >> from .car import SomeModel >> from .otherPackage.other_model import SomeOtherModel >> # and so on ... >> ``` >> >> Again, I could be way off here. I’ve never looked at the magic that >> parses the models on migration creation. >> >> Best, >> Benny >> >> On Jan 30, 2021, at 5:44 PM, Manuel <[email protected]> wrote: >> >> Hello everyone, I have a question about Django and the use of namespaces >> or packages to split the models.py file. >> I would like to adopt the Java philosophy in which one file corresponds >> one class and one db table. >> I tried to follow this guide, but it doesn’t work. >> >> https://docs.djangoproject.com/en/3.1/ref/applications/#namespace-packages-as-apps >> >> when I execute this command: "python manage.py makemigrations myapp" >> >> Return this warning: "No changes detected in app" >> >> Is it possible to do this structure? >> >> /models >> __init__py # if i use package, or without for namespace >> #common import >> car.py # class car >> group.py # class group >> manufactor.py # class manufactor >> /otherPackage >> __init__py >> common import >> otherClass.py >> >> I hope you understand what I’d like to do. >> Thank you. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/6cdc67de-94cb-4ad3-8c73-bc91da02b8bfn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-users/6cdc67de-94cb-4ad3-8c73-bc91da02b8bfn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/CH2PR14MB3913E5B5C52AD6AC35E63C69C0B59%40CH2PR14MB3913.namprd14.prod.outlook.com >> >> <https://groups.google.com/d/msgid/django-users/CH2PR14MB3913E5B5C52AD6AC35E63C69C0B59%40CH2PR14MB3913.namprd14.prod.outlook.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4d7d9586-5ff6-4012-aa55-96e9f4ab6a5en%40googlegroups.com.

