如何创建与Django的复选框,这样的表?

问题描述 投票:0回答:1

我想有与Django的每行一个复选框表所示的形象。我的Django的view.py,models.py和HTML文件如下所述。这可怎么办呢?是否有在Django或什么任何内置的功能?

Table with check box

我有模型文件:

class AppsDescription(db.Model):
    aws_response = aws_list_conf_api_call()

    CHOICES = [("yes", "YES"),
           ("no", "NO")]
    OPTIONS = list()

    for apps in aws_response:
        OPTIONS.append(('{name1}'.format(name1=apps.lower()), '{name2}'.format(name2=apps)), )

    name = db.CharField(max_length=256)
    description = db.TextField()
    plan_to_migrate = db.CharField(choices=CHOICES, max_length=256)
    # app_names = MultiSelectField(choices=OPTIONS)

    def __str__(self):
        return self.name

我作为views.py

def createapp(request):
    # import ipdb; ipdb.set_trace()
    form = DashboardForm()

    if request.method == "POST":
        form = DashboardForm(request.POST)
        list_of_inputs = request.POST.getlist("inputs")

        if form.is_valid:
            form.save(commit=True)
            return HttpResponseRedirect(reverse("aws:createapp"))

    server = aws_server_list_conf()

    return render(request, "createapp.html", {'server':server, 'form': form})

我的html文件

<form method="POST">
      {{form.as_p}}

      <table>
        <tr>
          <th>Select</th>
          <th>Agent ID</th>
          <th>Configuration ID</th>
          <th>Host Name</th>
          <th>OS Name</th>
          <th>OS Version</th>
          <th>Source</th>
          <th>Time of Creation</th>
          <th>Type</th>
        </tr>

        {% for apps in server %}
        <tr>


          <td><input type="checkbox" name="" value=""></td>

          {% for k,v in apps.items %}

          <td>{{ v }}</td>

          {% endfor %}

        </tr>
        {% endfor %}

      </table>




      {% csrf_token %}
      <input type="submit" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal" name="" value="submit">
      <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">
            <div class="alert alert-success alert-dismissible">
                <a  class="close" data-dismiss="modal" aria-label="close">&times;</a>
                <strong>Success!</strong> App information stored Successfully.
              </div>
        </div>
      </div>

      </form>

我想有与Django的每一行的复选框的表所示的形象。

django python-3.x django-models django-forms django-views
1个回答
3
投票

你的HTML文件需要这个样子:

<form method="POST">
      {{form.as_p}}

      <table>
        <tr>
          <th>Select</th>
          <th>Agent ID</th>
          <th>Configuration ID</th>
          <th>Host Name</th>
          <th>OS Name</th>
          <th>OS Version</th>
          <th>Source</th>
          <th>Time of Creation</th>
          <th>Type</th>
        </tr>

        {% for apps in server %}
        <tr>




          {% for k,v in apps.items %}
          <td><input type="checkbox" name="selected_options" value="v.id"></td>
          <td>{{ v }}</td>

          {% endfor %}

        </tr>
        {% endfor %}

      </table>




      {% csrf_token %}
      <input type="submit" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal" name="" value="submit">
      <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">
            <div class="alert alert-success alert-dismissible">
                <a  class="close" data-dismiss="modal" aria-label="close">&times;</a>
                <strong>Success!</strong> App information stored Successfully.
              </div>
        </div>
      </div>

      </form>


© www.soinside.com 2019 - 2024. All rights reserved.