I have Person model and PersonDetail model with OneToOneField() as shown below:
class Person(models.Model):
    name = models.CharField(max_length=20)
class PersonDetail(models.Model):
    person = models.OneToOneField(Person, on_delete=models.CASCADE)
    age = models.IntegerField()
    gender = models.CharField(max_length=20)
But, when using persondetail_set of a Person object as shown below:
obj = Person.objects.get(id=1)
print(obj.persondetail_set.get(id=1))
        # ↑ ↑ ↑ Here ↑ ↑ ↑
Then, there is the error below:
AttributeError: 'Person' object has no attribute 'persondetail_set'
So, I used ForeignKey() as shown below:
class PersonDetail(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    # ...
Then, there was no error:
PersonDetail object (1)
Or, I used ManyToManyField() as shown below:
class PersonDetail(models.Model):
    person = models.ManyToManyField(Person)
    # ...
Then, there was no error:
PersonDetail object (1)
So, cannot the parent model's object use _set with OneToOneField() in Django?
obj = Person.objects.get(id=1)
print(obj.persondetail_set.get(id=1))
        # ↑ ↑ ↑ Here ↑ ↑ ↑
 
    