选择字段不显示选项
Selectfield not showing options
我的模型表单中有一个字段,用户可以在其中选择膳食类型。但是表单输入不起作用,当我点击它时,没有任何反应。我想要发生的是显示一个包含不同膳食类型的下拉菜单。
模型看起来像这样
class Recipe(models.Model):
...
meal_type = {
('Breakfast', 'Breakfast'),
('Lunch', 'Lunch'),
('Dinner', 'Dinner')
}
meal = models.CharField(max_length=12, choices=meal_type, null=True)
我的表格是这样的
class RecipeForm(forms.ModelForm):
...
meal = forms.CharField(widget=forms.Select(attrs={'class':'form-select'}))
class Meta:
model = Recipe
....
我也尝试过使用“Choicefield”而不是“Charfield”,但我无法让它工作。
编辑
这就是我在模板中呈现表单的方式
<form action='' method="POST" class="form" hx-post='' hx-swap='outerHTML' >
{% csrf_token %}
{% for field in form %}
<div class="form-group">
{{field}}
</div>
{% endfor %}
<div class='htmx-indicator'>Loading...</div>
<div class="text-center">
<button class='htmx-inverted-indicator' style='margin-top:10px;' type='submit' >Save</button>
</div>
{% if message %}
<p>{{ message }}</p>
{% endif %}
然后我将其包含在更新模板中,例如
{% include 'recipe/komponents/forms.html' %}
尝试使用方括号 [for, a, list] 而不是花括号 {"which":denotes, "a": dictionary),例如,
meal_type = [
('Breakfast', 'Breakfast'),
('Lunch', 'Lunch'),
('Dinner', 'Dinner')
]
您还像 forms.form 而不是 forms.ModelForm 那样定义了小部件,这可能会使问题混淆。在您的表单中,尝试删除 meals =... 行并替换为:
Class Meta:
model = Recipe
widgets = {
'meal': forms.Select(attrs={'class':'form-select'}),
}
我的模型表单中有一个字段,用户可以在其中选择膳食类型。但是表单输入不起作用,当我点击它时,没有任何反应。我想要发生的是显示一个包含不同膳食类型的下拉菜单。
模型看起来像这样
class Recipe(models.Model):
...
meal_type = {
('Breakfast', 'Breakfast'),
('Lunch', 'Lunch'),
('Dinner', 'Dinner')
}
meal = models.CharField(max_length=12, choices=meal_type, null=True)
我的表格是这样的
class RecipeForm(forms.ModelForm):
...
meal = forms.CharField(widget=forms.Select(attrs={'class':'form-select'}))
class Meta:
model = Recipe
....
我也尝试过使用“Choicefield”而不是“Charfield”,但我无法让它工作。
编辑 这就是我在模板中呈现表单的方式
<form action='' method="POST" class="form" hx-post='' hx-swap='outerHTML' >
{% csrf_token %}
{% for field in form %}
<div class="form-group">
{{field}}
</div>
{% endfor %}
<div class='htmx-indicator'>Loading...</div>
<div class="text-center">
<button class='htmx-inverted-indicator' style='margin-top:10px;' type='submit' >Save</button>
</div>
{% if message %}
<p>{{ message }}</p>
{% endif %}
然后我将其包含在更新模板中,例如
{% include 'recipe/komponents/forms.html' %}
尝试使用方括号 [for, a, list] 而不是花括号 {"which":denotes, "a": dictionary),例如,
meal_type = [
('Breakfast', 'Breakfast'),
('Lunch', 'Lunch'),
('Dinner', 'Dinner')
]
您还像 forms.form 而不是 forms.ModelForm 那样定义了小部件,这可能会使问题混淆。在您的表单中,尝试删除 meals =... 行并替换为:
Class Meta:
model = Recipe
widgets = {
'meal': forms.Select(attrs={'class':'form-select'}),
}