gpt4 book ai didi

Django :需要一起吗?

转载 作者:行者123 更新时间:2023-12-02 04:20:22 24 4
gpt4 key购买 nike

你知道吗:

unique_together = ("name", "date")

必填字段是否存在类似的内容?

我有 2 个字段:ipv4 和 ipv6。 map 上有不同的无线网络,我们称它们为“孤岛”,因为它们不是通过物理方式连接,而是通过 VPN 隧道连接。

一些岛屿使用 ipv4 并且正在实现 ipv6,而其他岛屿则仅使用 ipv6。如果我将 ipv4 设置为 required,那么对于仅 ipv6 的那些来说会有问题,如果我将 ipv6 设置为 required,那么主要是 ipv4 的那些就会有麻烦。

我可以做两件事:将两个字段设置为不需要,或者以某种方式设置它,以便至少必须填写两个字段之一。

第一个解决方案很简单,但不太好,而第二个解决方案很好,但我不知道是否可以在不破解 django 的情况下实现。

该应用程序是开源的。

来源:https://github.com/ninuxorg/nodeshot/

演示:http://map.ninux.org

最佳答案

您可以为您的模型编写一个clean方法。每当您清理模型表单(包括 django admin)时都会调用此函数。

from django.core.exceptions import ValidationError

class MyModel(model.Model):
<field definitions>

def clean(self):
"""
Require at least one of ipv4 or ipv6 to be set
"""
if not (self.ipv4 or self.ipv6):
raise ValidationError("An ipv4 or ipv6 address is required")

请参阅 Validating objects 上的文档了解更多详情。

关于 Django :需要一起吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7738747/

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