实现css'select'不能与django一起使用

时间:2018-02-04 16:14:34

标签: python css django materialize

我有这个模板收集author_info模型的所有作者名称。这些名称显示为下拉列表。当我将所选值传递给视图时,它显示为null。模板:

<select>
     <option value="" disabled selected>Choose author</option>
     {% for author in ainfo %}
          <option  value="{{author.name}}" name="author_name">{{author.name}}</option>
     {% endfor %}
</select>

来自观看次数的代码段:

if request.method=="POST":

    author=request.POST.get('author_name')

2 个答案:

答案 0 :(得分:2)

它为空,因为您尚未命名您的选择输入。当您尝试从请求中获取author_name时,Django正在寻找名为author_name的输入。在你的情况下没有。从选项中删除名称属性,并添加适当的名称属性以进行选择。

<select name="author>
    <option value="" disabled selected>Choose author</option>
    {% for author in ainfo %}
    <option  value="{{author.name}}">{{author.name}}</option>
    {% endfor %}
</select>

author = request.POST.get('author')

此外,您可以将输入移至forms.py并像其他任何形式一样使用它,验证选择等。

class AuthorForm(forms.Form):

    author_choices = [
        (None, 'Choose author')
    ]

    for author in YourAuthorModel.objects.all():
        author_choices.append((author.author_name, author.author_name))

    authors = forms.ChoiceField(choices=author_choices)

答案 1 :(得分:0)

您应该启动物化选择,以使选择成为可能:

<script>
    document.addEventListener('DOMContentLoaded', function() {
        var elems = document.querySelectorAll('select');
        var instances = M.FormSelect.init(elems);
    });
</script>