models.py:

class CarType(models.Model):
    engine = models.CharField()
    transmission = models.CharField()


class Car(models.Model):
    car_type = models.ForeignKey(CarType,)
    color ...

class Details(models.Model):
    car = models.ForeignKey(Car, blank=True, null=True, related_name='details')
    engine = models.CharField()
    transmission = models.CharField()

例如,我们有宝马车。 这种类型的汽车仅需要安装A +级发动机。

然后,当我们向汽车添加新的细节(我们也可以添加带有细节的新汽车)时,我们需要检查-是要安装的细节,还是与该车类型支持相同。

因此,我们需要随时随地检查,添加哪些细节,哪种车型,哪些细节创建的车型。

如果我们将BMW的发动机等级B添加(需要A +发动机等级),请提出一些例外。

Car类中的save方法还不够,因为我们可以通过Detail类向car添加新的细节。

您将如何解决这个问题?

谢谢!

===============>>#1 票数:0

您可以使用自定义验证器。

from django.core.exceptions import ValidationError

def validate_a(instance):
    if instance.engine != 'A+':
        raise ValidationError('Instance requires A+ class engine')

然后在models.py中

...
class Car(models.Model):
    ...
    car = models.ForeignKey(Car, 
                            blank=True,
                            null=True
                            related_name='details',
                            validators=[validate_a])

  ask by tim translate from so

未解决问题?本站智能推荐:

1回复

导入的对象在模型内可用,但在模型的方法内不可用

在我的模型文件中,模型可以从模型本身内部(按预期方式)访问导入的项目,但不能从模型的方法内部访问。 例如: 该问题还影响从model.Model继承的模型(上面的一个是models.Manager),并且除了导入的项(例如datetime)之外,当模型方法引用其他模型或模型本地的函数时
2回复

使模型的所有对象可用于另一个模型

如果我有以下型号: 这样,如果我有多个game类型的对象,p.game(其中p是Player类型的对象)将始终为None。 如果我添加n个类型为Game的对象,我希望它们可供所有玩家使用,但每个玩家都应拥有自己的分数。 我该如何实现? Django 1.4.2(如果重要)。
2回复

用于日期时间可用性的Django模型

我正在开发一个示例应用程序来预订其他用户的物品。 我遇到了一个障碍,因为我似乎无法弄清楚何时可以租用物品时该如何建模。 要求: 用户可以每天或每小时租用物品。 所有者可以选择日期,可用项目的小时数。 有任何想法吗?
1回复

通过代理扩展对Django用户模型可用的方法

我正在集成一个应用程序,该应用程序过去拥有一个自定义用户模型来替换auth.User ,并向其他模型添加了自定义方法和关系。 我想使其更像是一个可重用的应用程序,因此我希望添加一个代理模型来为User相同的方法,以便诸如request.user.myfunc()类的东西仍然可以正常工作,并
1回复

使用TensorFlow训练的模型在Django中不可用

从检查点还原失败。 这很可能是由于检查点缺少变量名或其他图形键。 请确保您没有更改基于检查点的预期图形。 原始错误: 在检查点[[节点save_1 / RestoreV2(在Programing \\ web_programing \\ django \\ django-vegite
2回复

Django模型继承和类型检查

我的问题是,我如何理解机器模型的类型。 对于instamce,我知道传入的查询是Machine模型的子项,但我也想知道它是Car子模型。
1回复

检查count()之后,模型IndexError

这是我的代码: 除了通过并发进程从数据库中删除记录以外,是否有可能导致此错误?
3回复

Django-迁移时模型的不可用字段

也许我筋疲力尽,看不到简单的东西,但是在Django 1.9.7中,在进行迁移时,我发现了一些奇怪的东西,并且我正在寻找解释。 在RunPython操作中通过apps获取模型类(它是( django.db.migrations.state.StateApps ))时,存在该字段的Attribute
2回复

访问Django中每个列表组件的模型属性

我试图将对象列表从我的views.py传递到html模板,但是无法访问HTML模板中的对象模型属性。 请检查以下代码: class.py: views.py: 当我传递单个对象时,通常可以访问html文件中的属性,但是一旦传递对象列表,似乎就无法访问这些属性。 例如
3回复

Django Queryset:检查父模型是否具有子/引用模型

楷模: 如何获得有孩子的父母名单? 我当前的解决方案是通过迭代Parent-queryset,然后检查它是否有孩子。 有没有关于此查询的干净解决方案? 多谢你们!