On 30/09/2016 10:33 AM, Malik Rumi wrote:
Assume two models, class Parent(models.Model): and Child(Parent):
Assume they are both in the same Project
Can Child be in a different app than Parent? In most cases the answer
seems to be yes.
True. You only need to import Parent. But it might be better to put them
both in their own app with Parent defined before Child.
Each app has many other models to which Parent and Child,
respectively, are closely tied - which is why they are in those apps.
If so, what is the best practices way of doing so, and
how does one avoid or minimize circular imports?
In the other apps you don't need to import Parent and Child for FK and
such. That completely avoids circular imports. If your Parent and Child
classes are defined in the parentchild app then you specify your FK like
this ...
class ThisThing(models.Model):
parent = models.ForeignKey("parentchild.Parent")
...
class OtherThing(models.Model):
child = models.ForeignKey("parentchild.Child")
...
For example, if Child.models.py imports Parent in order to facilitate
the inheritance, what do you do if another model in Parent.models.py
has a fk to another model in Child.models.py?
You can also use quotes to specify the model class here. Just omit the
app name if they are in the same app.
Mike
--
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 django-users+unsubscr...@googlegroups.com
<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to django-users@googlegroups.com
<mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/01251136-3cfb-4069-862c-78e118475958%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/01251136-3cfb-4069-862c-78e118475958%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/e7418590-1a87-518d-478a-1718463a2ce0%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.