除了django表格ModelMultipleChoiceField中的键值对之外,是否可以访问其他数据?
我的目标是生成一个输入(复选框)及其名称(值)和额外信息,如价格,附加说明和可能的其他数据。
我使用django-crispy-forms,我很乐意通过创建模板将其保留在其中。
修改
我在考虑使用像
这样的东西<input value="{{ object.id }}">
{{object.name}} - {{object.description}} {{object.price}}
答案 0 :(得分:1)
是的,有一种方法称为%s
,它接受label_from_instance
作为参数并返回obj
表示。
您可以从ModelMultipleChoiceField继承并覆盖它,或在表单创建期间动态更改它。以下是一些例子:
obj
from django.forms import ModelMultipleChoiceField
class MyModelMultipleChoiceField(ModelMultipleChoiceField):
def label_from_instance(self, obj):
return "My Object #%i" % obj.id
#and then you have to use it in your form:
class MyForm(forms.ModelForm):
my_multi_choice_field = MyModelMultipleChoiceField(queryset=...)