Python django orm:使用一个基础模型连接两个模型

Python django orm:使用一个基础模型连接两个模型,python,django,orm,Python,Django,Orm,我有3个型号auth user作为我的基本型号,另外2个型号的外键为auth user。现在我想合并所有三个表,并创建一个对象,从合并的三个表中获取所有数据 class AuthUser(models.Model): password = models.CharField(max_length=128) last_login = models.DateTimeField(blank=True, null=True) is_superuser = models.Intege

我有3个型号
auth user
作为我的基本型号,另外2个型号的外键为
auth user
。现在我想合并所有三个表,并创建一个对象,从合并的三个表中获取所有数据

class AuthUser(models.Model):
    password = models.CharField(max_length=128)
    last_login = models.DateTimeField(blank=True, null=True)
    is_superuser = models.IntegerField()
    username = models.CharField(unique=True, max_length=150)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=150)
    email = models.CharField(max_length=254)
    is_staff = models.IntegerField()
    is_active = models.IntegerField()
    date_joined = models.DateTimeField()

    class Meta:
        managed = False
        db_table = 'auth_user'


    class employees(models.Model):
        employee_name = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True, to_field='username')
        department = models.CharField(max_length=100)
        dob = models.DateField()
        doj = models.DateField()
        blood_grp = models.CharField(max_length=100, null=True)
        father_name = models.CharField(max_length=100, null=True)
        add1 = models.CharField(max_length=100, null=True)
        add2 = models.CharField(max_length=100, null=True)
        # doj = models.ImageField(upload_to='profile_pics', blank=True)
        con_relation = models.CharField(max_length=100)
        # email_id = models.EmailField(max_length=254, blank=True, null=True)
        webmail_id = models.CharField(max_length=100, blank=True, null=True)
        emergency_mob = models.CharField(max_length=100)
        contact_person = models.CharField(max_length=100, blank=True, null=True)
        biometric = models.CharField(max_length=100, blank=True, null=True)
        biometric_id = models.CharField(max_length=100, blank=True, null=True)
        offer_letter = models.CharField(max_length=100, blank=True, null=True)
        team_leader = models.CharField(max_length=100)
        manager = models.CharField(max_length=100, blank=True, null=True)
        employment_status = models.CharField(max_length=100, blank=True, null=True)
        company_id = models.CharField(max_length=100)
        adhar_id = models.CharField(max_length=100, blank=True, null=True)
        pan = models.CharField(max_length=100, null=True)



    class auth_ext(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True, to_field='username')
        emp_code= models.CharField(max_length=100,unique=True,default=True) 
        is_role = models.CharField(max_length=100)
        is_designation = models.CharField(max_length=100)
        profile_image = models.ImageField(upload_to='profile_pics', blank=True)
        mobile_no = models.CharField(max_length=100)
        # add_skill = models.CharField(max_length=100, blank=True, null=True)
        class meta(object):
            """docstring for meta"""
            def __init__(self, arg):
                super(meta, self).__init__()
                self.arg = arg
视图.py

def Employees(request):
    # emp = employees.objects.all()
    emp = employees.objects.select_related()
    # return render('hr/employees.html', locals(),    context_instance=RequestContext(request))
    # emppp = employees.objects.select_related().filter(foreign_record__foreign_attribute__gt=foo)
    return render(request, 'hr/employees.html',{'emp':emp})
{% for emp in emp %}
<tr>
    <td>
        <a href="" class="avatar">J</a>
        <h2><a href="">John Doe <span>Web Designer</span></a></h2>
    </td>
    <td>{{emp.dob}}</td>
    <td>{{emp.User.email}}</td>
    <td>9876543210</td>
    <td><button class="btn btn-xs btn-primary" value="Web Developer">Web Developer</button></td>
hr/employees.html

def Employees(request):
    # emp = employees.objects.all()
    emp = employees.objects.select_related()
    # return render('hr/employees.html', locals(),    context_instance=RequestContext(request))
    # emppp = employees.objects.select_related().filter(foreign_record__foreign_attribute__gt=foo)
    return render(request, 'hr/employees.html',{'emp':emp})
{% for emp in emp %}
<tr>
    <td>
        <a href="" class="avatar">J</a>
        <h2><a href="">John Doe <span>Web Designer</span></a></h2>
    </td>
    <td>{{emp.dob}}</td>
    <td>{{emp.User.email}}</td>
    <td>9876543210</td>
    <td><button class="btn btn-xs btn-primary" value="Web Developer">Web Developer</button></td>
{emp%中的emp为%emp}
{{emp.dob}}
{{emp.User.email}
9876543210
网络开发者

auth\u ext的用户在这里,我并不清楚。您将
员工
链接到
用户
(使用一个字段
员工姓名
,这并不是一个好主意),这样您就可以在模板中获得带有
{{emp.Employee\u name.email}
的员工电子邮件,不要对循环变量使用与正在循环的集合相同的名称。您的
auth\u ext
模型是否类似于用户配置文件?名称很混乱。我本可以只创建两个表并连接它,即,auth_user和auth_ext。我本可以删除员工模型并将其插入auth_ext模型本身。但我希望将其隔离在该表本身的特定细节中,因此我在这里使用了3个表,其中员工表和auth_ext表具有来自auth_user表的相同外键。现在,我应该合并所有三个表并获取员工的数据。