【发布时间】:2018-01-07 18:32:51
【问题描述】:
如何在 Django 中使用 3 种不同的模型作为表单字段来制作表单?
这些是我的模型:
class User(models.Model):
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=50)
city = models.CharField(max_length=50)
class Team(models.Model):
team_name = models.CharField(max_length=250)
city = models.CharField(max_length=50)
class GameCategories(models.Model):
CATEGORIES = (
('Senior', 'Senior'),
('Middle', 'Middle'),
('Junior', 'Junior'),
)
category = models.CharField(max_length=16, choices=CATEGORIES)
我想使用<select><option></option></select> 创建一个表单,上面的模型看起来像这样:
<select class="form-control">
<option value=""></option>
<option value="user.id">user.first_name + user.last_name</option>
<option value="user.id">user.first_name + user.last_name</option>
<option value="user.id">user.first_name + user.last_name</option>
</select>
<select class="form-control">
<option value=""></option>
<option value="gamecat.id">gamecat.category</option>
<option value="gamecat.id">gamecat.category</option>
<option value="gamecat.id">gamecat.category</option>
</select>
<select class="form-control">
<option value=""></option>
<option value="team.id">team.team_name</option>
<option value="team.id">team.team_name</option>
<option value="team.id">team.team_name</option>
</select>
当用户点击提交按钮填写表单后,我想将所有值(用户 ID、游戏类别 ID、团队 ID)发送到另一个视图。
实际上我不知道如何做到这一点。我想我应该创建一个ModelForm。
你能帮帮我吗?
【问题讨论】:
-
不使用 Django
Form的任何原因。选项是否应该始终包含每个模型的所有当前实例? -
真的很简单!您必须创建类似这样的常规表单: myForm(form.Form)