python - 在使用 django 模型添加外键时需要帮助
问题描述
好吧,所以我不知道如何构图。我有两个模型 Employee 和 Customer。我将 Employee 作为外键存储在 emp_id 下的 Customer 模型中。epm_id 存储承认客户的员工的主键。我不确定如何在 django 中执行此操作。这是我的模型:
class Customer(models.Model):
firstname = models.CharField(max_length=15)
lastname = models.CharField(max_length=15)
age = models.IntegerField()
sex = models.CharField(max_length=10)
phoneno = models.IntegerField()
emailid = models.CharField(max_length=25)
address = models.CharField(max_length=50)
children = models.IntegerField()
adults = models.IntegerField()
roomtype = models.CharField(max_length=10)
aadharno = models.CharField(max_length=15)
daysstayed = models.IntegerField()
date_visited = models.DateTimeField(default=timezone.now)
emp_id = models.ForeignKey(Employee,on_delete=models.SET_NULL,blank=True,null=True)
class Employee(models.Model):
firstname = models.CharField(max_length=15)
lastname = models.CharField(max_length=15)
age = models.IntegerField()
sex = models.CharField(max_length=10)
phoneno = models.IntegerField()
emailid = models.CharField(max_length=25)
address = models.CharField(max_length=50)
salary = models.IntegerField()
designation = models.CharField(max_length=10)
password = models.CharField(max_length=10)
aadharno = models.CharField(max_length=15)
datejoined = models.DateField(default=timezone.now)
我需要一些帮助。
解决方案
我建议的最好方法是按如下方式创建模型:
模型.py
from django.db import models
from django.contrib.auth.models import User
SEX = [
('male', 'Male'),
('female', 'Female'),
('not_to_say', 'Rather not to say')
]
class BaseModel(models.Model):
age = models.IntegerField()
sex = models.CharField(max_length=20, choices=SEX)
phone = models.CharField(max_length=10)
address = models.CharField(max_length=50)
aadhar_no = models.CharField(max_length=15)
class Employee(BaseModel):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='employee_user')
salary = models.IntegerField()
designation = models.CharField(max_length=10)
class Customer(BaseModel):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='customer_user')
childrens = models.IntegerField()
adults = models.IntegerField()
room_type = models.CharField(max_length=10)
days_stayed = models.IntegerField()
date_visited = models.DateTimeField(default=timezone.now)
employee = models.ForeignKey(Employee, on_delete=models.SET_NULL, relted_name='serving_employee')
您可以访问password
, date_joined
, first_name
, last_name
& email
of employee
from Employee.user
, and first_name
, last_name
& email
of customer
from Customer.user
。
我希望这能解决你的问题。
推荐阅读
- cassandra - 如何在 Nifi 中设置 QueryCassandra 处理器的增量或最大值列?
- cmake - 在 Mac 上设置 VulkanGuide 教程
- javascript - 在 jsplumb 社区版中需要帮助以拖放不同的操作组件
- android - 将 layout_height 更改为“wrap_content”会缩小组件
- excel - excel时间少于3小时条件格式
- java - java处理将unicode char替换为square
- java - 在后台服务的系统叠加层中显示横幅/原生广告
- android - 从 Firebase 获取空字符串
- asp.net - 实例失败错误 SQLServer Asp Net Core
- nginx - 如何使用两个后端处理 Kubernetes 入口规则