【发布时间】:2019-10-31 00:11:48
【问题描述】:
使用文档中的multi-table inheritance 设置的 Django 模型时,如果存在匹配的“地点”条目,则管理应用程序无法添加新的“餐厅”模型 - 管理应用程序返回“具有此名称的地点”已经存在”。
Django 的ModelForm 提供表单验证方法,Model 提供唯一性验证。
将现有的 Place 入口变成餐厅的最佳地点是哪个?
你会怎么做呢?
例如,Place(name="hotdogshop", address="bond street") 存在,用户尝试添加 Restaraunt( serving_hot_dogs=True, serving_pizza=False, name="hotdogshop", address="邦德街”)。期望的最终结果与我们一开始就将“hotdogshop”添加为“Restaraunt”一样。
【问题讨论】:
-
似乎github.com/craigds/django-typed-models 允许重铸模型对象...目前的尝试是挂钩 Model._perform_unique_checks 并在违反唯一性时触发重铸。
标签: django django-models django-forms django-admin django-orm