如何在Django中连接以下两个表?

plicqrtu  于 2023-11-20  发布在  Go
关注(0)|答案(1)|浏览(116)

我有两个模型;员工和产品。这两个表已经有数据。我需要做的就是将每个员工分配给一个产品(例如计算机),然后能够检索数据并显示它。
这些是模特

from django.db import models
from django.utils import timezone
from django.dispatch import receiver
from more_itertools import quantify
from django.db.models import Sum
    
# Create your models here. 
class Employee(models.Model):
    address = models.EmailField(max_length=100,null=True)
    first_name = models.CharField(max_length=50,null=True)
    sec_name = models.CharField(max_length=50,null=True)       
    department = models.CharField(max_length= 50,null=True)
    company = models.CharField(max_length= 50,null=True)
    date_created = models.DateTimeField(default=timezone.now)
    date_updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.first_name + ' - ' + self.department
    
class Product(models.Model):
    model=models.CharField(max_length=50, null=True)
    serial=models.CharField(max_length=50, null=True)
    hd_size=models.CharField(max_length=50,null=True)
    ram=models.CharField(max_length=50, null=True)
    processor=models.CharField(max_length=50, null=True)
    date_created = models.DateTimeField(default=timezone.now)
    date_updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.serial + ' - ' + self.model

字符串

lqfhib0f

lqfhib0f1#

所有你需要做的是创建另一个模型,两个字段first_namemodel你的新模型看起来像这样:

class AssignLog(models.Model):
    fname = models.ForeignKey(Employee,on_delete=models.CASCADE) 
    model_name = models.ForeignKey(Product,on_delete=models.CASCADE)

字符串
一定要跑

python manage.py makemigrations
python manage.py migrate


使用此代码显示所有记录。

from .models import AssignLog  

all_assign_logs = AssignLog.objects.all()
for assign_log in all_assign_logs:
    print(f"Employee Name: {assign_log.fname}")
    print(f"Product Model: {assign_log.model_name}")


注意:AssignLog模型的两个字段是您定义的模型的对象。访问相应的属性。

相关问题