【发布时间】:2018-06-11 00:03:40
【问题描述】:
这是我的表格:
class RoleForm(forms.ModelForm):
class Meta:
model = models.RoleModel
fields = ['name']
class FeatureForm(forms.ModelForm):
role = forms.ModelChoiceField(queryset=models.RoleModel.objects.values_list('name', flat=True).distinct())
class Meta:
model = models.FeatureModel
fields = ['role','feature']
在我的引导表单中,选项显示正确。我得到所有角色的列表。但是,如果我填写功能表单并点击提交,它会显示 - “选择一个有效的选择。该选择不是可用的选择之一。”
我的模型是:
class RoleModel(models.Model):
name = models.CharField(validators=[alphanumeric], max_length=50, unique=True, blank=False)
class FeatureModel(models.Model):
role = models.ForeignKey(RoleModel, on_delete=models.PROTECT)
feature = models.CharField(validators=[alphanumeric], max_length=10, unique=True)
我的 bootsrtap 形式是:
<form action="{% url 'feature_form' %}" novalidate method="POST">{% csrf_token %}
<div class="row">
<div class="col">
<label for="role">{{ fform.role.label }}</label>
<p><select class="form-control id="role" name="role">
{% for item in fform.role %}
{{ item }}
{% endfor %}
</select></p>
{% for error in fform.role.errors %}
<p><small class="alert-danger">{{ error }}</small></p>
{% endfor %}
</div>
<div class="col">
<label for="feature">{{ fform.feature.label }</label>
<p><input type="text" class="form-control" id="feature" name="feature"
{% if fform.feature.value is not None %}
value="{{ fform.feature.value }}"
{% endif %}
></p>
{% for error in fform.feature.errors %}
<p><small class="alert-danger">{{ error }}</small></p>
{% endfor %}
</div>
</div>
<input class='btn btn-primary btn-sm' type='submit' value='Save'>
</form>
我的需求很简单。第二种形式(FeatureForm)有两个字段。角色是另一个模型的外键和一个用于输入特征名称的文本字段。在我的客户端,我需要将外键显示为带有列表的选择选项。我从这个选择中选择了一个值,输入特征的值并点击保存。它必须保存。
【问题讨论】:
标签: django twitter-bootstrap django-models django-forms django-templates