django - 在 django 中自动链接两个模型
问题描述
我想在创建新订单时链接到这家公司。现在,我必须手动选择它
class Company(models.Model):
name = models.CharField(max_length=64)
address = models.TextField(max_length=250)
class Order(models.Model):
company = models.ForeignKey('Company', on_delete=models.CASCADE)
order_date = models.CharField(max_length=64)
order_notes = models.TextField(max_length=250)
解决方案
首先,如果每个订单都与该特定公司相关联,则创建外键是过度的。如果您出于某种原因仍想这样做,这里是解决方案。
class Order(models.Model):
company = models.ForeignKey('Company', on_delete=models.CASCADE)
order_date = models.CharField(max_length=64)
order_notes = models.TextField(max_length=250)
def save(self, *args, **kwargs):
# u have to have a new order in db
super().save(*args, **kwargs)
# then assing this particular company
self.company = Company.objects.get(name='the_company_name', address='the_company_address')
# and again save the changes
super().save(*args, **kwargs)
但如果您想这样做,请考虑让公司name
和address
unique_together
推荐阅读
- python - 当你使用 Process 或 Pool 实现多处理时,python 解释器做了什么?
- python - Python 错误:AttributeError:__enter__
- php - Oci8_12.dll 错误“未找到驱动程序”
- angular - Angular - 仅在延迟加载的模块上添加身份验证拦截器
- r - 丢弃在特定日期时间间隔内重复的值
- ngx-datatable - ngx-datatable:如何使工具提示出现
- kubernetes - 如何在 Kubernetes 集群中的 Pod 之间或节点之间复制文件?
- android - 添加 .gitignore 并删除应该被忽略的文件
- go - 使用反射,如何动态创建结构“类型”?
- php - 如何在 docker 容器中重新加载服务配置(php-fpm)?