7. Connect table operation

Use double underscores and _set to connect operations between tables

First, the data table structure

from django.db import models

   

class UserProfile(models.Model):

        user_info = models.OneToOneField('UserInfo',on_delete=None)

        username = models.CharField(max_length=64)

        password = models.CharField(max_length=64)

   

        def __str__(self):

                return self.username

   

class UserInfo(models.Model):

        user_type_choice = (

                ( 0 , u ' normal user ' ),

                ( 1 , u ' advanced user ' ),

        )

        user_type = models.IntegerField(choices=user_type_choice)

        name = models.CharField(max_length=32)

        email = models.CharField(max_length=32)

        address = models.CharField(max_length=128)

   

        def __str__(self):

                return self.name

   

class UserGroup(models.Model):

        caption = models.CharField(max_length=64)

   

        user_info = models.ManyToManyField('UserInfo')

   

        def __str__(self):

                return self.caption

   

class Host(models.Model):

        hostname = models.CharField(max_length=64)

        ip = models.GenericIPAddressField()

        user_group = models.ForeignKey('UserGroup')

   

        def __str__(self):

                return self.hostname

   

2. One-to-one query

user_info_obj = models.UserInfo.objects.filter(id=1).first()

print(user_info_obj.user_type)

print(user_info_obj.get_user_type_display())

print ( user_info_obj . userprofile . password ) #Here userprofile is lowercase. because it's all lowercase in the database

   

user_info_obj = models.UserInfo.objects.filter(id=1).values('email', 'userprofile__username').first()

print(user_info_obj.keys())

print(user_info_obj.values())

   

Three, one-to-many query

Similar to one-to-one 1 , use __connection 2 for search conditions, use .connection when getting the value

   

Four, many-to-many operation

   

   

   

   

   

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325079904&siteId=291194637
Recommended