python - 对 ModelForm 中的同一字段使用 django-autocomplete-light 和 django-addanother
问题描述
我尝试了以下方法:
import floppyforms.__future__ as forms
from .models import Worker
from dal import autocomplete
from organizations.models import Hub
from django.urls import reverse_lazy
from django_addanother.widgets import AddAnotherWidgetWrapper
from django.forms import MultiWidget
class WorkerCreateForm(forms.ModelForm):
class Meta:
model = Worker
fields = ['display_name', 'hub', 'capacity', 'vehicle', ]
widgets = {
'hub': autocomplete.ModelSelect2(url='hubs-autocomplete', attrs{'data-html': True}),
'hub': AddAnotherWidgetWrapper(
forms.Select,
reverse_lazy('create_hub'))
}
这只会呈现AddAnotherWidgetWrapper
明显的。
我尝试以多种方式使用 MultiWidget,每次遇到不同的错误(我不会发布我所有的试验和错误,因为它们中的大多数没有多大意义,但如果你认为我应该分享它们,我很乐意这样做)。由于没有明确的示例,我发现很难理解如何使用MultiWidget
,而且我不确定它是否适合我的用例。
在django-autocomplete-light 的文档中,他们建议使用django-addanother
用于添加具有多个字段的模型,但没有说明如何实现它。
我猜django-addanother
在Select2
下拉列表中填充新创建的模型可能并不容易,但如果我能够创建一个新模型然后让用户在选择字段中手动选择它,它将是对我来说够多的了。
我想知道是否有一种简单的方法可以一起使用这两个包,或者我是否应该编写自己的自定义代码以使两个包很好地协同工作。
任何帮助将不胜感激。
编辑:我最终将django-addanother
JavaScript 脚本手动放置在 HTML 模板中并且它起作用了。但是,我不确定这是否是最好的实现以及是否会导致任何安全问题。
解决方案
推荐阅读
- c# - JavaScript 是在 ASP.Net CORE MVC 视图上处理 onclick 事件的唯一方法吗?
- angular - 在 Angular 输入装饰器中使用装饰器
- c# - 根据内部对象数组对 Mongo DB 结果进行排序
- sql - Array_agg 函数
- spring - POST 请求的 PayU 集成错误 - payu 响应中缺少强制归档的“furl”
- reactjs - saga() 函数未在重新登录时调用
- python - 去掉括号、撇号
- python - 如何删除嵌套字典中的字典
- python - 获取 numpy 数组列表中的唯一值
- python - Pygame中没有坐标的碰撞检测