我有这两个模型:
模型.py
class App(models.Model):
app_name = models.SlugField(max_length=50)
options_loaded = models.ManyToManyField(Option)
created_by = models.ForeignKey(User)
def __unicode__(self):
return self.name
class Option(models.Model):
option_name = models.SlugField(max_length=50)
condition = models.BooleanField('Enable condition')
option = models.BooleanField('Enable option1')
created_by = models.ForeignKey(User)
def __unicode__(self):
return self.option_name
我想呈现一个看起来像这样的表单,其中复选框来自不同的模型(来自带有 CheckboxSelectMultiple() 小部件的 M2M 字段的第一列),Option_name 可以是 <a href="/link/">Option_name</a>
这可能吗?
最佳答案
这是我的简单解决方案:在模板中手动渲染 CheckboxSelectMultiple()
<table>
<thead>
<tr>
<td> </td>
<td>V</td>
<td>S</td>
</tr>
</thead>
{% for pk, choice in form.options.field.widget.choices %}
<tr>
<td><a href="/link/{{ choice }}">{{ choice }}</a></td>
<td>
<label for="id_options_{{ forloop.counter0 }}">
<input {% for m2moption in model.m2moptions.all %}{% if option.pk == pk %}checked="checked"{% endif %}{% endfor %} type="checkbox" id="id_options_{{ forloop.counter0 }}" value="{{ pk }}" name="options" />
</label>
</td>
</tr>
{% endfor %}
</table>
关于Django - 在模板中单独呈现 CheckboxSelectMultiple() 小部件(手动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15323724/