带有字段的“选择小部件”作为具有多个选项的复选框

时间:2019-02-11 06:21:08

标签: django django-models django-forms

我有以下模型:

class Owner(models.Model)

country = models.CharField(max_length=255, choices=COUNTRIES, default=COUNTRIES_DEFAULT)

COUNTRIES is compose of tuples:

COUNTRIES = (
    ('afg', 'Afghanistan'),
    ('ala', 'Aland Islands'),
    ('alb', 'Albania'),
    ('dza', 'Algeria'),
    ('asm', 'American Samoa'),
    ....... ) 

对于FrontEnd,我需要显示一个Widget,并且对于每个国家/地区都有一个复选框。 一个人/用户可以选择多个国家/地区。

我想我需要使用一个自定义的小部件,但是我不知道从何处开始继承Field /小部件并在数据库中进行查询。

--- 为什么不是Django Multiple Field任务的重复项 n ----

我不需要新的Model字段,也不需要将其存储在数据库中,并且它之间没有多对多的关系,因此像包django-multiselectfield之类的东西就没有用了。

ModelField仅存储一个值,但是在表单中将显示来自元组的值。我添加只是为了查看对应关系。

相反,我只需要成为一个表单字段即可获取值并查询数据库。就像获取居住在美国和英国的所有所有者一样。

看起来也不像Select2,我需要尊重设计。正如图像中的功能一样:

enter image description here

1 个答案:

答案 0 :(得分:1)

在表单中,您必须使用<tbody> <tr *ngFor="let test of labsRateInterface.testgroups; let i=index"> <td>{{i+1}}</td> <td>{{test._id}}</td> <td>{{test.name}}</td> </tr> </tbody> 小部件定义MultipleChoiceField

CheckboxSelectMultiple

这将为您提供多选复选框的列表。如果您不想显示较长的列表,可以设置自己的样式,使其带有滚动条。

以下是Django文档中的一个示例:https://docs.djangoproject.com/en/2.1/ref/forms/widgets/#setting-arguments-for-widgets