django - 另一个数据库字段的外键的 Django 下拉字段
问题描述
我是 Django 初学者,在使用引导下拉菜单进行外键使用时遇到问题。
我有一个用于为我的采购网站添加提供商(供应商、制造商或两者)的输入表单,该表单具有以下数据结构:
class Provider(models.Model):
provider_id = models.AutoField(primary_key=True)
provider_name = models.CharField(max_length=255, unique=True)
provider_address = models.CharField(max_length=255, null=True, blank=True)
provider_email = models.EmailField(null=True, blank=True)
provider_contact_01 = models.CharField(max_length=20, null=True, blank=True)
provider_contact_02 = models.CharField(max_length=20, null=True, blank=True)
provider_type = models.ForeignKey(ProviderType, on_delete=models.CASCADE)
其中 provider_type 是表 ProviderType 的外键,具有以下数据结构:
class ProviderType(models.Model):
providertype_id = models.AutoField(primary_key=True)
providertype_desc = models.CharField(max_length=50, null=True, blank=True)
def __str__(self):
return self.providertype_desc
ProviderType 的数据集:
| providertype_id | providertype_desc |
---------------------------------------------
| 1 | Supplier |
| 2 | Manufacturer |
| 3 | Supplier & Manufacturer |
问题是我在下拉字段中使用了providertype_desc作为文本,因为它对用户更友好并且有上下文,而不是providertype_Id,html中的代码段:
<div class="form-group col-md-6">
<label for="provider_type">Type of Provider</label>
<select class="custom-select" id="provider_type" name="provider_type" aria-label="Example select with button addon">
<option selected>Choose...</option>
{% for prov_types in provider_types %}
<option>{{prov_types.providertype_desc}}</option>
{% endfor %}
</select>
</div>
但是 POST 序列失败,因为需要返回 providertype_id 而不是 providertype_desc。
寻找建议,请尽量保持简单,因为我还是 Django 的初学者。
谢谢你。
解决方案
这确实是一个 HTML 问题,您想在value
选项中添加一个:
<option value="{{prov_types.pk}}>{{prov_types.providertype_desc}}</option>
推荐阅读
- python - 在 Django 中解析和处理 CSV
- android - 附近连接的Android应用程序问题
- swift - Firebase 规则失败:permission_denied
- prolog - 递归让我困惑
- c# - 正则表达式 - 修复 CSV - 引用文本限定符中的引号
- google-chrome-devtools - Chrome远程接口错误:未知命令:协议
- vsto - VSTO OneClick 添加受信任的发布者
- twitter-bootstrap - 使用 .container 的父级删除嵌套 Bootstrap .col 中的填充的最佳做法是什么?
- python - Tensorflow 在张量中查找匹配的字符串
- scala - 如何对 Enumeratum IntEnumEntry 使用 withName() 方法