在Django工作我在模型中添加了选项和必要的字段。这些选项在管理站点中填充得很好,但没有呈现在模板中。我已经反复检查了几次,一切似乎都是正确的,所以我不明白为什么选择没有呈现在模板中。这可能与CSS有关吗?我在用物化。
我已经添加了.input-field类,并按照物化文档初始化了select元素。什么都没变。
下面是我的代码:
产品型号:
class Grocery(models.Model):
"""
Model to create a grocery_list
"""
CATEGORIES = [("groceries", "Groceries"),
("school", "School"),
("hardware", "Hardware"),
("travel", "Travel"),
("gifts", "Gifts"),
("decoration", "Decoration"),
("lifestyle", "Lifestyle"),
("wishlist", "Wishlist")]
name = models.CharField(max_length=500, default='My grocery list')
category = models.CharField(max_length=20, choices=CATEGORIES,
default='Shopping')
字符串
形式:
class GroceryForm(forms.ModelForm):
"""
Form to create a grocery shopping list
"""
class Meta:
model = Grocery
fields = ['name', 'category', 'shop', 'item']
型
模板:
{% block title %}Create shopping list{% endblock %}
{% block content %}
<div class="container row">
<div class="col s10 m8 push-s1 push-m2">
<h1 class="center-align">Create a grocery shopping list</h1>
<div class="divider"></div>
<div class="input-field section">
<form method="POST">
{% csrf_token %} {{ form.media }} {{ form.as_p }}
<button type="submit" class="waves-effect btn">Create list</button>
</form>
</div>
</div>
</div>
{% endblock %}
型
JS
// sidebar initialization
document.addEventListener("DOMContentLoaded", function () {
let sidenav = document.querySelectorAll(".sidenav");
M.Sidenav.init(sidenav);
});
// select initialization
document.addEventListener("DOMContentLoaded", function () {
let elems = document.querySelectorAll("select");
M.FormSelect.init(elems, options);
});
型
x1c 0d1x的数据
1条答案
按热度按时间xv8emn3q1#
问题是,您使用了
M.FormSelect.init(elems, options)
,但您没有首先定义options
,因此初始化失败。看看你的JavaScript控制台,你会看到这个错误消息
Uncaught ReferenceError: options is not defined
。我试着把它取下来,它工作得很好。