gpt4 book ai didi

python - Django 模型中的自定义地址字段

转载 作者:太空狗 更新时间:2023-10-30 02:35:34 31 4
gpt4 key购买 nike

在 Django 模型中表示邮政地址的常见做法是什么?是否有用于包含邮政地址字段并可能处理验证和格式设置的自定义模型字段的库?

如果不存在库,我该如何编写一个?我可以在 Django 中表示一个复合字段(一个字段被序列化为数据库中的多个列)吗?希望这消除了连接查询的需要。

最佳答案

我不知道地址的单个表单字段,但您可以使用 localflavor验证 MultiWidget 的输入和组合和 MultiValueField用于创建地址字段。我的看起来像这样:

class SplitAddressWidget(forms.MultiWidget):
def __init__(self, attrs=None):
widgets = []
widgets.append(forms.TextInput(attrs=attrs))
widgets.append(forms.TextInput(attrs=attrs))
widgets.append(forms.TextInput(attrs=attrs))
widgets.append(forms.TextInput(attrs=attrs))
widgets.append(forms.TextInput(attrs=attrs))
super(SplitAddressWidget, self).__init__(widgets, attrs)
...

class SplitAddressField(forms.MultiValueField):
widget = SplitAddressWidget
def __init__(self, *args, **kwargs):
fields = (
forms.CharField(required=kwargs['required']),
forms.CharField(required=0),
forms.CharField(required=kwargs['required']),
USStateField(required=kwargs['required']),
USZipCodeField(required=kwargs['required']),
)
super(SplitAddressField, self).__init__(fields, *args, **kwargs)
...

涉及到的代码比较多,这里粘贴的有点多。此信息应该让您朝着正确的方向前进。

注意:截至 2013 年 11 月 21 日,localflavor 已移至外部包 ( available on PyPi )。

关于python - Django 模型中的自定义地址字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165252/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com