在 Django 中,pre-select 表单选项标签的正确方法是什么?

In Django, what's the right way to pre-select a form option tag?

我正在使用 Django 和 Python 3.7。我想在我的模板上创建一个 SELECT 菜单,所以我尝试了这个 ...

    <select id="website_id" name="website_id">
        <option value="">Select a website</option>
{% for website in websites %}
        <option value="{{ website.id }}" {{ 'selected' if website_id == website.id else '' }}>{{ website.path }}</option>
{% endfor %}
    </select>

但是我收到这个错误

Could not parse the remainder: ' if website_id == website.id else ''' from ''selected' if website_id == website.id else '''

我的 "if" 表情让我窒息。设置选项标签的 "selected" 属性的首选方法是什么?

正确的语法是这样的:

{% if CONDITION %}A{% endif %}

所以在你的情况下,我们会像这样实现它:

    <select id="website_id" name="website_id">
        <option value="">Select a website</option>
        {% for website in websites %}
            <option value="{{ website.id }}" {% if website_id == website.id %}selected{% endif %}>{{ website.path }}</option>
        {% endfor %}
    </select>

真正正确的方法是使用Django表单。但是如果你坚持要手动做的话,你需要一个if标签

 {% if website_id == website.id %} selected {% endif %}
<select name="qf">
    <option value="10th" {% if '10th' %} selected {% endif %}>10th</option>
    <option value="12th" {% if '12th' %} selected {% endif %}>12th</option>
</select>