我想将类型的数字设置为select标签的id

时间:2017-09-27 04:42:51

标签: python html django

我想将类型的数字设置为select标签的id。 我在浏览器中的理想html是

class FadeWidget(QWidget):
    def __init__(self, parent = None):   
        QWidget.__init__(self, parent)

        self._heightMask = self.height()
        self.animation = QPropertyAnimation(self, b"heightPercentage")
        self.animation.setDuration(1000)
        self.animation.setStartValue(self.height())
        self.animation.setEndValue(-1)
        self.animation.finished.connect(self.close)
        self.isStarted = False

    @pyqtProperty(int)
    def heightMask(self):
        return self._heightMask

    @heightMask.setter
    def heightPercentage(self, value):
        self._heightMask = value
        rect = QRect(0, 0, self.width(), self.heightMask)
        self.setMask(QRegion(rect))

    def closeEvent(self, event):
        if not self.isStarted:
            self.animation.start()
            self.isStarted = True
            event.ignore()
        else:   
            QWidget.closeEvent(self, event)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = FadeWidget()
    window.show()
    sys.exit(app.exec_())

现在浏览中的实际html是

 <select id="mainDD" data-placeholder="Choose" class="chzn-select" style="width:600px;">
      <option value="0">---</option>
      <option value="1">a</option>
      <option value="2">b</option>
    </select>
    <select name="type" id="type1">
      <option value="1">a1</option>
      <option value="2">a2</option>
    </select>
    <select name="type" id="type2">
      <option value="5">b1</option>
      <option value="6">b2</option>
    </select>

id =“type”没有每个数字,但我不知道如何使用Django的模板添加这些数字。 我在index.html中写道

   <select id="mainDD" data-placeholder="Choose" class="chzn-select" style="width:600px;">
            <option>---</option>  
            <option>a</option> 
            <option>b</option>  
    </select>

    <select name="type" id="type">
        <option value="0">---</option>
        <option value="1">a1</option>   
        <option value="2">a2</option>   
    </select>

    <select name="type" id="type">
        <option value="5">---</option>
        <option value="6">b1</option>
        <option value="7">b2</option>  
    </select>

我应该写什么?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

使用forloop.counter代替计数器:

{% for key, values in preprocessed %}
<select name="type" id=type{{forloop.counter}}>
  {% for counter, value in values %}
  <option value="{{ forloop.counter }}">{{ value }}</option>
  {% endfor %}
</select>
{% endfor %}

答案 1 :(得分:0)

<form method="post" action="">
    <select id="mainDD" data-placeholder="Choose" class="chzn-select" style="width:600px;">
    {% for i in json_data.items.values %}
            <option>{{ i }}</option>
    {% endfor %}
    </select>


    {% for key, values in preprocessed %}
        <select name="type" id=type-{{ key }}>
        {% forvalue in values %}
            <option value="{{ forloop.counter0 }}">{{ value }}</option>
        {% endfor %}
        </select>
    {% endfor %}
</form>

最好使用键入类型,以便以后轻松引用它。也不需要单独的计数器变量。 Django模板标签为此提供了forloop.counter。 forloop.counter0用0开始计数器索引,forloop.counter用1开始计数器索引。希望这能清除你的怀疑。

参考 - https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#for