0
我想为用户的地点提供charfield
,如果它已存在,请使用foreignkey
。如果不存在,请创建一条新记录并使用该记录foreignkey
。它应该对用户完全透明,charfield
选择一个现有的行或创建一个新的行。是否有内置功能,或者是否需要在view.py
中创建?Django形成新的外键记录
解决方案:
views.py
place, created = Place.objects.get_or_create(
street_number = form.cleaned_data['street_number'],
route = Route.objects.get_or_create(
route = form.cleaned_data['route'],
neighborhood = Neighborhood.objects.get_or_create(
neighborhood = form.cleaned_data['neighborhood'],
locality = Locality.objects.get_or_create(
locality = form.cleaned_data['locality'],
administrative_area_level_1 = form.cleaned_data['administrative_area_level_1']
)[0]
)[0]
)[0]
)
'get_or_create'是我正在寻找,这将简化我的逻辑,谢谢。现在的问题是如何在验证发生之前应用这个逻辑?现在,如果我提交表格,酥脆给出_选择一个有效的选择。这个选择不是可用的选择之一。另外,你能否在OP中检查'forms.py',并告诉我它是否正确,以及'view.py'中应该包含哪些内容? – dtgq
明白了,谢谢你的提示。用解决方案代码更新OP。 – dtgq