#31394: Impossible to create with an inverse one-to-one relationship
-------------------------------------+-------------------------------------
     Reporter:  scwall               |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  2.2
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by scwall:

Old description:

> Hello, I don't know if this is a bug or if it's something wanted. If I
> create two models .
>
> **Work >>>**
>
> Application One:
>
> ----
>
> {{{
> class Foo(models.Model):
>
>    foo_bar = models.IntegerField()
>
>    def save(self, *args, **kwargs):
>         created = self._state.adding
>         super(EqoLevel, self).save(*args, **kwargs)
>         if created:
>             self.bar_set.create()
>
> }}}
>
> ----
>
> Application Two:
>
> ----
>
> {{{
> class Bar(models.Model):
>
>     foo = models.ForeignKey("app1.Foo",
> on_delete=CASCADE,primary_key=True)
>     foo_bar_2 = models.IntegerField()
>
> }}}
>
> **Not work >>>**
>
> Application One:
>
> ----
>
> {{{
> class Foo(models.Model):
>
>    foo_bar = models.IntegerField()
>
>    def save(self, *args, **kwargs):
>         created = self._state.adding
>         super(EqoLevel, self).save(*args, **kwargs)
>         if created:
>             self.bar_set.create()
>
> }}}
>
> ----
>
> Application Two:
>
> ----
>
> {{{
> class Bar(models.Model):
>
>     foo = models.OneToOneField("app1.Foo", on_delete=CASCADE)
>     foo_bar_2 = models.IntegerField()
>
> }}}
>
> But if I use a  I can't run a one to one creation with an inverse
> relationship  and yet during makemigrations  it says (fields.W342)
> Setting unique=True on a ForeignKey has the same effect as using a
> OneToOneField. (HINT: ForeignKey(unique=True) is usually better served by
> a OneToOneField.),
>
> Yes but without this function I can't find it. I can also use a signal
> but I find it a shame to have to create a signal for the simple creation
> of a one to one relationship that foreign key can provide.
> Thank's

New description:

 Hello, I don't know if this is a bug or if it's something wanted. If I
 create two models .

 **Work >>>**

 Application One:

 ----

 {{{
 class Foo(models.Model):

    foo_bar = models.IntegerField()

    def save(self, *args, **kwargs):
         created = self._state.adding
         super(Foo, self).save(*args, **kwargs)
         if created:
             self.bar_set.create()

 }}}

 ----

 Application Two:

 ----

 {{{
 class Bar(models.Model):

     foo = models.ForeignKey("app1.Foo",
 on_delete=CASCADE,primary_key=True)
     foo_bar_2 = models.IntegerField()

 }}}

 **Not work >>>**

 Application One:

 ----

 {{{
 class Foo(models.Model):

    foo_bar = models.IntegerField()

    def save(self, *args, **kwargs):
         created = self._state.adding
         super(EqoLevel, self).save(*args, **kwargs)
         if created:
             self.bar_set.create()

 }}}

 ----

 Application Two:

 ----

 {{{
 class Bar(models.Model):

     foo = models.OneToOneField("app1.Foo", on_delete=CASCADE)
     foo_bar_2 = models.IntegerField()

 }}}

 But if I use a  I can't run a one to one creation with an inverse
 relationship  and yet during makemigrations  it says (fields.W342) Setting
 unique=True on a ForeignKey has the same effect as using a OneToOneField.
 (HINT: ForeignKey(unique=True) is usually better served by a
 OneToOneField.),

 Yes but without this function I can't find it. I can also use a signal but
 I find it a shame to have to create a signal for the simple creation of a
 one to one relationship that foreign key can provide.
 Thank's

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/31394#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" 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-updates/064.bcdea745784b1e4402fe6ea86de72606%40djangoproject.com.

Reply via email to