Django formset 初始数据 - 如何指定 ForeignKeyFields 的值?
Django formset initial data - how to specify values for ForeignKeyFields?
我正在使用自定义内联 FormSet
:
成功初始化字段 Ip
的值
#
class PrepopulatedIpInlineFormSet(forms.models.BaseInlineFormSet):
model = Ip
def __init__(self, *args, **kwargs):
super(PrepopulatedIpInlineFormSet, self).__init__(*args, **kwargs)
apn_ggsns = ApnGgsn.objects.all()
initial = []
for apn_ggsn in apn_ggsns:
print apn_ggsn.cidr
cidr = IPNetwork(apn_ggsn.cidr)
print cidr
for ip in cidr:
# skip .0 and .255 addresses
ipstr = str(ip)
print ipstr[-2:]
if ipstr[-2:] == '.0' or ipstr[-4:] == '.255':
continue
print ipstr
num = Ip.objects.filter(ip=ipstr).count()#, apnid=apn_ggsn.apn_id, ggsn_id=apn_ggsn.ggsn_id).count()
if num == 0:
initial.append({'ip': ipstr, 'apn': apn_ggsn.apn, 'ggsn': apn_ggsn.ggsn})
break
self.initial = initial
ip
字段正在使用下一个免费 IP 地址正确填充到管理表单中。正在正确生成多个内联 forms/objects。
我无法让 <select>
显示正确的初始值。
我已经尝试了将 _id
后缀添加到字典键并使用实际对象和对象的 ID 作为值的每种组合。
<select>
框从不显示初始 selected
值。
文档显示了示例,但不是 ForeignKeyField
s。
https://docs.djangoproject.com/en/1.9/topics/forms/formsets/#using-initial-data-with-a-formset
我做错了什么?
这是一个浏览器刷新错误。当我打开一个新标签页时,一切都按预期工作。
我正在使用自定义内联 FormSet
:
Ip
的值
#
class PrepopulatedIpInlineFormSet(forms.models.BaseInlineFormSet):
model = Ip
def __init__(self, *args, **kwargs):
super(PrepopulatedIpInlineFormSet, self).__init__(*args, **kwargs)
apn_ggsns = ApnGgsn.objects.all()
initial = []
for apn_ggsn in apn_ggsns:
print apn_ggsn.cidr
cidr = IPNetwork(apn_ggsn.cidr)
print cidr
for ip in cidr:
# skip .0 and .255 addresses
ipstr = str(ip)
print ipstr[-2:]
if ipstr[-2:] == '.0' or ipstr[-4:] == '.255':
continue
print ipstr
num = Ip.objects.filter(ip=ipstr).count()#, apnid=apn_ggsn.apn_id, ggsn_id=apn_ggsn.ggsn_id).count()
if num == 0:
initial.append({'ip': ipstr, 'apn': apn_ggsn.apn, 'ggsn': apn_ggsn.ggsn})
break
self.initial = initial
ip
字段正在使用下一个免费 IP 地址正确填充到管理表单中。正在正确生成多个内联 forms/objects。
我无法让 <select>
显示正确的初始值。
我已经尝试了将 _id
后缀添加到字典键并使用实际对象和对象的 ID 作为值的每种组合。
<select>
框从不显示初始 selected
值。
文档显示了示例,但不是 ForeignKeyField
s。
https://docs.djangoproject.com/en/1.9/topics/forms/formsets/#using-initial-data-with-a-formset
我做错了什么?
这是一个浏览器刷新错误。当我打开一个新标签页时,一切都按预期工作。