Open vorlif opened 8 years ago
It is not working for me either.
class Alpha(models.Model):
...
class Beta(models.Model):
alpha = AutoOneToOneField(Alpha, primary_key=True, on_delete=models.CASCADE)
I created an Alpha
object and no corresponding Beta
object was created.
Hmm, can anyone see what the problem is, or submit a PR to fix it?
@pymarco I'm just seing this but AutoOneToOneField
won't create a related object unless you try to access it.
a = Alpha.objects.create()
Beta.objects.count()
# 0
a.beta
# <Beta: Beta object>
Beta.objects.count() # 1
@arthurio thanks, its worked for me on Django 1.10, python 2.7
It is not working for me either.
django 1.9.7 annoying: 0.9.0
@littlehome-eugene We are going to need more details than that to figure out what is not working for you...
Same here. Django 1.11.2, annoying 0.10.3.
Under some circumstances objects are being created, but what those are I haven't figured out yet.
Not working for me either. Django 1.11.6, python 2.7, annoying 0.10.3.
@eduardocesar @moorchegue I don't see how we can possibly help you without more details... Did you read my previous comment ?
@arthurio I've tried to access the related object after the creation of the primary object and did not appear. With some investigation, it seems that it was a boolean field in the related object that was preventing it's creation.
Doesn't work for me either:
class PatientRecord(models.Model):
checkup_interval = models.IntegerField(default=180)
class Patient(models.Model):
name = models.CharField(max_length=64)
# date_of_birth = models.DateField()
record = AutoOneToOneField(PatientRecord, on_delete=models.CASCADE)
registration_date = models.DateField()
last_visit = models.DateField(blank=True, null=True)
# Keep track of how many times we're sending messsages to people
# to make sure we don't spam them
appointment_reminder_attempt = models.IntegerField(default=0)
email_address = models.EmailField(blank=True, null=True)
Creating a Patient object does not automatically create a PatientRecord. I've tried creating via the admin as well as via the shell. Doesn't seem to work either way.
Django==2.0 django-annoying==0.10.3
@arthurio Thanks, accessing the related object creates it.
http://www.techinfected.net/2018/02/automatically-create-onetoonefield-in-django.html
Is primary_key=True required for this to work?
My model is defined as such:
class CrmCategory(models.Model):
stats_list_direct = AutoOneToOneField('CrmCategoryStatsList',
null = True,
related_name = 'direct_category',
help_text = 'What stats to list, as defined by this category directly.')
stats_list_union = AutoOneToOneField('CrmCategoryStatsList',
null = True,
related_name = 'union_category',
help_text = 'An or''ing of the direct stats, and the children''s stats_list_union')
And yet when I access it, I get a None:
cat = CrmCategory.objects.all().first()
print('union', cat.stats_list_union)
@albrnick You want to put the AutoOneToOneField
on the CrmCategoryStatsList
model instead:
class CrmCategoryStatsList(models.Model):
category = AutoOneToOneField(...)
System
OS: Linux Python: 3.5.1 Django: 1.9.5 Annoying: 0.9.0
Example
From README.md.
Description
I have try your example but it doesnt't work. I have no error messages. The field works lika a regular OneToOne field.