Well my friend, the only reason I have to do the imports is because each model is in it's own app. In every example I have seen the models are usually small and contained in one app. Perhaps I need to redesign my project to have everything lumped together?
In my project I have an app for base, shipment, supplier, species, and user. Each app has its own rules of operations, meaning each has its own css, templates etc. I have looked at example until I am blue in the face but I cannot seem to get past the "cannot import name 'Supplier' from partially initialized module 'supplier.models' (most likely due to a circular import) (/Users/frankd/django" error. I'm not sure what the "partially initialized" is telling me. frank- On Wed, Jan 26, 2022 at 8:13 PM bnmng <[email protected]> wrote: > Hi, > > You shouldn't have to import since the models are in the same models.py > > On Wednesday, January 26, 2022 at 2:26:13 PM UTC-5 [email protected] > wrote: > >> After trying the suggestions I get these errors. >> >> supplier.models: >> >> class Supplier(models.Model): >> >> name = models.CharField(max_length=50) >> >> phone = models.CharField(max_length=15, null=True, blank=True) >> >> email = models.CharField(max_length=120, null=True, blank=True) >> >> country = models.CharField(max_length=120, null=True, blank=True) >> >> address = models.CharField(max_length=120, null=True, blank=True) >> >> city = models.CharField(max_length=120, null=True, blank=True) >> >> state = models.CharField(max_length=120, null=True, blank=True) >> >> zipCode = models.CharField(max_length=10, null=True, blank=True) >> >> >> def __str__(self): >> >> return self.name >> >> >> shipment.models: >> >> ---------------- >> >> >> from django.db import models >> >> >> from specie.models import Specie >> >> from supplier.models import Supplier >> >> >> # Create your models here. >> >> >> >> class Shipment(models.Model): >> >> created = models.DateTimeField() >> >> specie = models.ManyToManyField(Specie) >> >> label = models.CharField(max_length=10) >> >> received = models.PositiveIntegerField() >> >> bad = models.PositiveIntegerField(default=0) >> >> non = models.PositiveIntegerField(default=0) >> >> doa = models.PositiveIntegerField(default=0) >> >> para = models.PositiveIntegerField(default=0) >> >> released = models.PositiveIntegerField(default=0) >> >> entered = models.BooleanField(default=False) >> >> supplier = models.ForeignKey(Supplier, on_delete=models.DO_NOTHING) >> >> >> def __str__(self): >> >> return self.supplier >> >> >> class Meta: >> >> ordering = ["label"] >> >> >> def __str__(self): >> >> return self.label >> >> >> # =================================# >> >> When I add the line supplier = models.ForeignKey(Supplier, >> on_delete=models.DO_NOTHING) >> >> I get this error: >> >> >> File "/Users/frankd/django_projects/Insectarium/src/shipment/models.py", >> line 4, in <module> >> >> from supplier.models import Supplier >> >> File >> "/Users/frankd/django_projects/Insectarium/src/supplier/models.py", line 3, >> in <module> >> >> from shipment.models import Shipment >> >> ImportError: cannot import name 'Shipment' from partially initialized >> module 'shipment.models' (most likely due to a circular import) >> (/Users/frankd/django_ >> >> >> >> specie.models: >> >> -------------- >> >> from django.db import models >> >> from django.utils import timezone >> >> from ckeditor.fields import RichTextField >> >> >> from shipment.models import Shipment >> >> >> # Create your models here. >> >> >> >> class Specie(models.Model): >> >> scientific_name = models.CharField(max_length=50) >> >> common_name = models.CharField(max_length=50, blank=True, null=True) >> >> description = RichTextField(blank=True, null=True) >> >> image = models.ImageField( >> >> upload_to="specie/images/species", default="no_picture.png" >> >> ) >> >> shipment = models.ManyToManyField(Shipment) >> >> created = models.DateField(default=timezone.now) >> >> >> def __str__(self): >> >> return self.scientific_name >> >> >> class Meta: >> >> ordering = [ >> >> "scientific_name", >> >> ] >> >> >> def __str__(self): >> >> return self.scientific_name >> >> >> # ====================== # >> >> when I add the line shipment = models.ManyToManyField(Shipment) >> >> I get this error. >> >> >> File "<frozen importlib._bootstrap>", line 241, in >> _call_with_frames_removed >> >> File >> "/Users/frankd/django_projects/Insectarium/src/shipment/models.py", line 3, >> in <module> >> >> from specie.models import Specie >> >> File "/Users/frankd/django_projects/Insectarium/src/specie/models.py", >> line 5, in <module> >> >> from shipment.models import Shipment >> >> ImportError: cannot import name 'Shipment' from partially initialized >> module 'shipment.models' (most likely due to a circular import) >> (/Users/frankd/django_ >> >> >> >> I think I tried this before but couldn't resolve these errors. Any >> suggestions would be appreciated. >> >> >> frank- >> >> >> On Wed, Jan 26, 2022 at 10:53 AM frank dilorenzo <[email protected]> >> wrote: >> >>> Thank you so much. Have a great day! >>> >>> frank- >>> >>> >>> On Wed, Jan 26, 2022 at 6:51 AM bnmng <[email protected]> wrote: >>> >>>> I would start by defining Supplier in your models.py, then Shipment >>>> with a ForeignKey reference to Supplier >>>> >>>> I'm assuming (forgive me if I'm wrong) that not only can a shipment >>>> have many species, but a species can be in many shipments, so if that's the >>>> case, the most obvious way is to go with ManyToMany for that relationship >>>> >>>> https://docs.djangoproject.com/en/4.0/topics/db/examples/many_to_many/ >>>> >>>> class Supplier(models.Model): >>>> (etc..etc..) >>>> >>>> class Shipment(models.Model): >>>> supplier = models.ForeignKey( >>>> Supplier, >>>> on_delete=models. (...etc.. etc...) >>>> >>>> class Species(models.Model): >>>> shipment = models.ManyToManyField( >>>> Shipment, >>>> (etc..) >>>> On Monday, January 24, 2022 at 8:59:10 AM UTC-5 [email protected] >>>> wrote: >>>> >>>>> I have tried several different ways but I cannot seem to get this >>>>> right. What I have is a list >>>>> of suppliers. Each supplier can have many shipments and each shipment >>>>> can have many species. Seems simple enough but apparently I must be more >>>>> simple. >>>>> >>>>> I need a suggestion of how to relate these table. >>>>> >>>>> a supplier can have many shipment. A shipment can have many species. >>>>> Any help would be appreciated. Thanks. >>>>> >>>> -- >>>> 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/bc667e81-ce32-4df5-8f88-47dff3d852c8n%40googlegroups.com >>>> <https://groups.google.com/d/msgid/django-users/bc667e81-ce32-4df5-8f88-47dff3d852c8n%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/8f41caba-62f3-45e8-b4d6-e9584f9e8068n%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/8f41caba-62f3-45e8-b4d6-e9584f9e8068n%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/CAJbiy1BgLQ%3Dbsd1k6KntKvN_dsxK2-Q2M8h2uWBY3TWPO_-V1Q%40mail.gmail.com.

