Django - 如何处理动态复选框

时间:2017-07-11 12:08:46

标签: python django forms

我对django很新,我几乎坚持这个问题。

我正在创建一个可以处理对象列表的网站。 单个对象的每个详细视图显示客户可用的所有列表(由他或在同一公司工作的其他人创建的每个列表),检查对象是否在此列表中,如果没有,则检查未选中。

我的问题如下: 我希望当用户按下提交按钮时,我的数据库将被更新。

  • 如果框中没有变化,则DB上没有任何变化
  • 如果有变化,当然会更新数据库。
    • 但仅限于那些"州"已更改

这是我的模板:

<form action="{% url 'forms:add-list' artpiece.id %}" method="post">
    {% csrf_token %}
    {% for foo in list %}
        <input type="checkbox" name="listform" value="{{ foo.id }}"
        {% if artpiece.pk in foo.art_inlist %} checked {% endif %}> {{ foo }}<br>
    {% endfor %}
    <input type="submit">
</form>

我的模特:

class ArtList(models.Model):
    name = models.CharField(max_length=250, blank=False)
    creator = models.ManyToManyField(User)
    art_ids = models.ManyToManyField(ArtPiece, related_name='artid')

    def __str__(self):
        return self.name

    def art_inlist(self):
        return self.art_ids.values_list('pk', flat=True)

类似于循环到每个列表并且检查ID是否存在是一个好主意?对我来说似乎很多&#34; work&#34;如果我有大量的名单......

提前多多感谢!我会编辑所有不清楚的内容。

0 个答案:

没有答案