gpt4 book ai didi

python - 仅当另一个模型字段为真时才需要管理站点中的模型字段

转载 作者:行者123 更新时间:2023-11-28 21:27:46 24 4
gpt4 key购买 nike

在我的一个模型中,我希望仅当另一个 bool 模型字段为真时才需要外键对象。我如何配置管理站点以这种方式运行?

我的 models.py 包含:

from django.db import models

class ThingOne(models.Model):
name = models.CharField(max_length=100)

class ThingTwo(models.Model):
name = models.CharField(max_length=100)
use_thingone = models.BooleanField()
thingone = models.ForeignKey(ThingOne, blank=True, null=True)

我的 admin.py 包含:

from myapp.models import ThingOne
from myapp.models import ThingTwo
from django.contrib import admin

admin.site.register(ThingOne)
admin.site.register(ThingTwo)

只有当 use_thingone 为真时,我如何调整它以使 thingone 成为必需的外键字段?

最佳答案

您实际上只需要重写模型的 clean 方法:

from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from django.db import models

class ThingTwo(models.Model):
#Your stuff

def clean(self):
"""
Validate custom constraints
"""
if self.use_thingone and self.thingone is None:
raise ValidationError(_(u"Thing One is to be used, but it not set!"))

关于python - 仅当另一个模型字段为真时才需要管理站点中的模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964863/

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