代码之家  ›  专栏  ›  技术社区  ›  Omar Jandali

在HTML模板django中分配表单字段的问题

  •  0
  • Omar Jandali  · 技术社区  · 8 年前

    我有一个模型表单,我想知道在模板html文件中运行for循环时,是否可以采用模型表单并指定特定字段的名称。

    {% extends "base.html" %}
    
    {% block content %}
      <h1>Add members to {{record.name}}</h1>
      {% if message %}
        <p>{{message}}</p>
      {% endif %}
      <form action="." method="POST">
        {% csrf_token %}
        {% for trans in transactions %}
          {% if trans.record.id == record.id %}
            {{ trans.user.username }}
            {{ form.as_p }}
          {% endif %}
        {% endfor %}
        <p>Tax: <input type="text" name="tax" value=""></p>
        <p>Tip: <input type="text" name="tip" value=""></p>
        <input type="submit" name="submit" value="submit">
      </form>
    {% endblock %}
    

    以下是当前表单模型:

    class IndividualSplitTransactionForm(forms.ModelForm):
        class Meta:
            model = Transaction
            fields = ['amount', 'description']
    

    目前的格式如下:

    omar
    amount
    description
    hani
    amount
    description
    assad
    amount
    description
    tax
    tip
    

    omar
    omaramount
    omardescription
    hani
    haniamount
    hanidescription
    assad
    assadamount
    assaddescription
    tax
    tip
    

    因此,在处理时,当我用金额更新现有记录时,我可以为每个用户正确分配相应的金额和描述。

    有没有可能在模板本身中这样做,或者我必须在其他地方这样做。

    所以我试着改变我的代码并更新它,以得到我想要的,但这就是我得到的。。。

    这是html

     {% extends "base.html" %}
    
    {% block content %}
      <h1>Add members to {{record.name}}</h1>
      {% if message %}
        <p>{{message}}</p>
      {% endif %}
      <form action="." method="POST">
        {% csrf_token %}
        {% for trans in transactions %}
          {% if trans.record.id == record.id %}
            {% for field in form %}
              <div class="fieldWrapper">
                {{ field.errors }}
                {{ trans.user.username }}{{ field.label }}{{ field|safe }}
              </div>
            {% endfor %}
          {% endif %}
        {% endfor %}
        <p>Tax: <input type="text" name="tax" value=""></p>
        <p>Tip: <input type="text" name="tip" value=""></p>
        <input type="submit" name="submit" value="submit">
      </form>
    {% endblock %}
    

    request returs

    1 回复  |  直到 8 年前
        1
  •  0
  •   Nagaraj Tantri    8 年前

    如果你想要 username + amount username + description form.as_p ,因为您将获得html <p><p/>

    您要动态添加 username 然后设计自己的html内容 form manually

    label_suffix suffix 您应该在创建表单对象时执行此操作。

    :

    {% for field in form %}
        <div class="fieldWrapper">
            {{ field.errors }}
            {{ trans.user.username }} {{ field.label_tag }} {{ field }}
            {% if field.help_text %}
            <p class="help">{{ field.help_text|safe }}</p>
            {% endif %}
        </div>
    {% endfor %}