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

问题描述 投票:0回答:1

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

这是模型。

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
django django-models django-forms
1个回答
0
投票

您需要做的就是创建另一个具有两个字段

first_name
model
的模型 你的新模型看起来像这样:

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.first_name}")
    print(f"Product Model: {assign_log.model}")
    # Add more fields if needed
    print("\n")
© www.soinside.com 2019 - 2024. All rights reserved.