python - 在 Django admin 中自动填充关系
问题描述
我正在开发我的第一个 Django 应用程序。我的目标是有两种模型,一种用于办公室,另一种用于员工,当创建人员记录(在管理站点中)时,创建和指定房间也会用该人填充该房间。
我能够创建模型,但现在我陷入了第 22 个问题,当我添加一个人时,我必须创建一个房间,但要创建一个房间,我必须添加一个人,等等......
如何创建并自动填充这样的房间?
以下是来自的相关代码models.py
:
class Room(models.Model):
number = models.CharField('Room number', primary_key=True, max_length=50)
occupant = models.ManyToManyField('Person', blank=True) # Can have multiple occupants
class Person(models.Model):
name = models.CharField('Full name', max_length=200)
office = models.ForeignKey(Room, on_delete=models.SET_NULL, null=True) # Some offices may not have an occupant
更新:我添加blank=True
了一个,office
这样我就可以创建一个没有人的办公室。但是,即使我添加了一个人并将他们分配office
给该号码,并且它显示在管理页面中,详细视图页面似乎没有抓住它,除非我手动进入Room
管理页面并选择该人。那部分可以自动化吗?
解决方案
推荐阅读
- html - 媒体查询不起作用和最大宽度问题
- ruby - 如何在 Factorybot 中为具有nested_attributes 的模型创建工厂
- javascript - 如何让自定义代理字段出现在开发人员工具中
- vb.net - VB.NET通过属性文本反序列化XML子节点
- vuejs2 - quasar框架中的Q-Table,状态对象数据表不显示
- html - 为什么我的代码中没有指定样式元素
- javascript - Having some doubts on how to name my Vue.js components and some more
- sql - HANA SQL IsDate() 等效或采用无效数据的 to_date 函数?
- windows-ce - Mifare Standard 1K - 6D00 for external authentication APDU
- python - asyncio tcp 套接字:当套接字关闭时如何取消 asyncio.sleep()?