我有一个下拉菜单,该菜单通过两个不同的对象值contact.firstName
和contact.lastName
的组合来填充。如何在POST
上分别提交这两个值,以便以后查询?之所以出现此问题,是因为我需要处理名字或姓氏多于一个单词的情况。
views.py
if form.is_valid():
obj.contact = request.POST.get('select_contacts')
template.html
<div class="select">
<select name="select_contacts" id="select_contacts" required>
<option value="">Contact</option>
% for contact in contacts %}
<option value="{{ contact.firstName }} {{ contact.lastName }}" name="selected_contact" id="selected_contact">{{ contact.firstName }} {{ contact.lastName }}</option>
{% endfor %}
</select>
</div>
答案 0 :(得分:1)
为防止使用串联的char字段引用对象时出现问题,您应该改用联系人ID来引用联系人对象:
<option value="{{ contact.id }}" name="selected_contact" id="selected_contact">{{ contact.firstName }} {{ contact.lastName }}</option>
然后在相关模型上设置contact_id
,以使其正确引用联系人对象:
if form.is_valid():
obj.contact_id = request.POST.get('selected_contact')
这假设obj.contact
是名为Contact
的模型的外键,例如:
class Whatever(models.Model):
contact = ForeignKey(Contact, on_delete=models.CASCADE)
这种关系将确保您始终保持引用完整性,并避免遇到您遇到的问题以及其他问题,例如当两个联系人具有相同的姓名时。