python - Django - 如何将 ForeignKey 下拉到文本框中?
问题描述
我有一个表单,它的字段是 ForeignKey,因为它确保输入的 ID # 是数据库中存在的 ID。将其设为 ForeignKey 后,它将我的字段更改为如下所示表单中的下拉列表,其中包含一堆名为“ Salesman object ( 'a number' ) ”的选项,而不是像它这样的文本框是以前。用户应该能够输入他们的“adp”号码,并且它应该只允许销售员中的号码。
在进行此更改之前,我只是将adp_number放在 forms.py 中的字段下,而不是作为 ForeignKey,这使我无法与包含所有有效adp_number的 Salesman 模型进行交叉检查。
我尝试关注这个Django:在管理表单之外使用 ForeignKeyRawIdWidget,因为我也没有使用管理,但是一旦我将该字段设置为小部件,它就完全停止在我的页面上显示,我不确定需要更改什么。
表格.py
class WarehouseForm(AppsModelForm):
class Meta:
model = EmployeeWorkAreaLog
widgets = {
'adp_number': ForeignKeyRawIdWidget(EmployeeWorkAreaLog._meta.get_field('adp_number').remote_field, site),
}
fields = ('work_area', 'station_number')
模型.py
class EmployeeWorkAreaLog(models.Model):
employee_name = models.CharField(max_length=25)
adp_number = models.ForeignKey(Salesman, on_delete=models.SET_NULL, help_text="Employee #", null=True, blank=False)
work_area = models.ForeignKey(WorkArea, on_delete=models.SET_NULL, null=True, blank=False, help_text="Work Area", related_name="work_area")
station_number = models.ForeignKey(StationNumber, on_delete=models.SET_NULL, null=True, help_text="Station", related_name="stations", blank=True)
enter_exit_area.html
{% extends "base.html" %}
{% block main %}
<form id="warehouseForm" action="" method="POST" data-stations-url="{% url 'operations:ajax_load_stations' %}" novalidate >
{% csrf_token %}
<div>
<div>
{{ form.adp_number.help_text }}
{{ form.adp_number }}
</div>
<div>
{{ form.work_area.help_text }}
{{ form.work_area }}
</div>
<div>
{{ form.station_number.help_text }}
{{ form.station_number }}
</div>
</div>
<div>
<div>
<button type="submit" name="enter_area" value="Enter">Enter Area</button>
<button type="submit" name="leave_area" value="Leave">Leave Area</button>
</div>
</div>
</form>
{% endblock main %}
解决方案
推荐阅读
- c - 如何获取elf二进制文件的堆起始地址
- javascript - 如何仅获取具有“用户”角色的用户?
- php - 在 wordpress 插件页面中执行表单的问题
- javascript - JavaScript 中的“.at()”有什么用?它在普通 JavaScript(浏览器 JavaScript)中是否有效?
- node.js - 如何使用 node.js 从 mongodb 数据库中获取随机数据
- java - 使用火花引擎运行 hive 时找不到 JavaSparkListener
- android - 如何在 kotlin 中管理离线 Android 应用程序中的数据?
- postgresql - 如何在执行 SELECT ... 语句时将表列传递到 plpgsql 函数中
- apache-kafka - 为融合云安装连接器
- python - 无法从数据帧切片运行预测,卡在应该是 2d 的 1d 数组中