我花了一些时间查看其他问题,但我真的不了解一些实现。我正在使用django创建一个虚拟图书租赁网络应用程序。我想显示一个带有复选框的书籍列表,以便使用django表单选择它。
有没有办法从单独模型中创建的书籍标题中动态生成复选框的标签?
示例书模型:
class Book(models.Model):
title = models.CharField(max_length=100)
.
.
.
pub_date = models.DateField()
租赁表格:
class RentalForm(forms.Form):
name = forms.BooleanField(label = "label")
.
.
我希望表单动态地将书名插入标签字段,但我不知道如何。
答案 0 :(得分:0)
查看ModelMultipleChoiceField和CheckboxSelectMultiple小部件:
from django.forms.fields import MultipleChoiceField
from django.forms.widgets import CheckboxSelectMultiple
class RentalForm(forms.Form):
books = forms.ModelMultipleChoiceField(queryset=Book.objects.all(),
widget=CheckboxSelectMultiple)
我认为它使用__unicode__来显示复选框旁边的“标签”。你需要在.save()或POST请求上使用一些逻辑来处理这个问题,但它应该可以工作。
或者,如果你想要真正的BooleanFields,你需要在RentalForm上用__init __()做一些事情,并动态创建所有的BooleanFields。