django - 用于点数组的 Django 小部件
问题描述
我有一个带字段的模型
myfield = ArrayField(geo_models.PointField(null=False, blank=False), null=False)
而且我找不到在 Django Admin 中表示它的方法。
我尝试使用 django_better_admin https://github.com/gradam/django-better-admin-arrayfield:
from .widget import PointWidget
from django_better_admin_arrayfield.admin.mixins import DynamicArrayMixin
@admin.register(myModel)
class MyModelAdmin(admin.ModelAdmin, DynamicArrayMixin):
formfield_overrides = {
DynamicArrayField: {'widget': PointWidget},
}
和 PointWidget:
class PointWidget(forms.MultiWidget):
"""
A Widget that splits Point input into latitude/longitude text inputs.
"""
def __init__(self, attrs=None, date_format=None, time_format=None):
widgets = (forms.TextInput(attrs=attrs),
forms.TextInput(attrs=attrs))
super(PointWidget, self).__init__(widgets, attrs)
def decompress(self, value):
if value:
return tuple(value.coords)
return (None, None)
def value_from_datadict(self, data, files, name):
mylat = data[name + '_0']
mylong = data[name + '_1']
try:
point = Point(float(mylat), float(mylong))
except ValueError:
return ''
return point
解决方案
推荐阅读
- angular - ion2-calendar 问题显示天数和只读
- flutter - 如何测试flutter生成的release APK?
- c - 在 C 中使用 sprintf 并收到警告时出现问题
- excel - 宏或 VBA 中是否有函数可以根据条件从单元格中提取数据
- c++ - 在 C++ 中指定捕获的情况下构造 lambda 对象
- javascript - 如何修复 data-bs-target 引导版本 5 不起作用?
- python - Python中项目的数据结构问题
- r - 在 r 中从多个数据框(不是 ggplot)创建多个图
- graphql - GraphQLError:语法错误:预期名称,找到@
- python - 将txt文件中的jpeg值转换为图像