After numerous attempts I think I found my solution. (NO ERRORS)
supplier/models.py
------------------------
shipment = models.ForeignKey(
Shipment, on_delete=models.DO_NOTHING, null=True, blank=True)
specie/models.py
----------------
no reference to any other model
supplier/models.py
-------------------
specie = models.ManyToManyField(Specie)
Thanks for all the suggestions.
frank-
On Thu, Jan 27, 2022 at 9:17 AM frank dilorenzo <[email protected]>
wrote:
> 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/CAJbiy1Cb3sb8A024Kp_m6%3DfgfqoraWKg4v8hMVPBw2HnQxoufg%40mail.gmail.com.