This is a part of models.py
in my django app.
class User(models.Model):
user_id = models.AutoField(primary_key=True)
uuid = models.CharField(max_length=32)
name = models.CharField(max_length=10)
phone = models.CharField(max_length=20)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class UserForm(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
access_info = models.CharField(max_length=250)
etc_comment = models.CharField(max_length=250)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class UserAddress(models.Model):
user_address_id = models.AutoField(primary_key=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
address_name = models.CharField(max_length=100)
address_name_detail = models.CharField(max_length=100)
address_type = models.CharField(max_length=11)
address_coord = models.PointField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
I am using MySQL database and linked it to django database.
My question is how to get all three data together just in a single query.
As I know, I have to use django's prefetch_related
or select_related
method to get them together like this
objs = User.objects.select_related('userform').get(user_id=1)
But, what about getting them from three model classes?
Please, let me know if you have any idea.