django-forms - Django ModelAdmin 表单表单验证
问题描述
我是一个新鲜的 django newb,并试图弄清楚如何在 ModelForm 中获取对象主键。
我要做的是验证插入表单的数据是否在数据集中任何其他对象的 5 米范围内。我正在尝试在管理站点中执行此操作。
添加新“地点”时,以下内容完美运行,但我在尝试更改和现有“地点”时遇到问题。问题是验证总是在对象注释中发现。
class PlaceAdminForm(forms.ModelForm):
class Meta:
model = Place
fields = "__all__"
def clean(self):
pnt = self.cleaned_data["location"]
for place in Place.objects.annotate(distance=Distance("location", pnt)):
if place.distance <= 5:
raise forms.ValidationError("Another Place within 5m")
@admin.register(Place)
class PlaceAdmin(admin.ModelAdmin):
form = PlaceAdminForm
我想这样做的方式是通过某种方式从更改视图中获取“主键”并能够过滤“pk”上的 Place.object。
解决方案
推荐阅读
- delphi-7 - Delphi中的广播和接收
- three.js - Aframe - 获取文本的宽度和高度
零件 - javascript - 带有 Ng-If 的 Ng-Model 不起作用(非常基本的示例)
- c# - 以其他形式c#获取组合框的值
- google-apps-script - 无法通过 gmail 插件访问 gmail 联系人(已包含 oauth 范围)
- .net - ImapX | vb.net - 附件集合为空,即使邮件实际上有附件
- javascript - 根据以字符串形式给出的数字键对对象数组进行排序
- react-native - 如何隐藏反应原生标签导航标签项?
- java - 如何在 Spring Boot 中配置自定义身份验证和授权?
- python-3.x - 在继续第一个之前运行第二个 python 脚本