Skip to main content
 首页 » 编程设计

python之Django 模型 : Dependent fields

2024年10月01日34txw1958

假设我有以下模型:

class Book(models.Model): 
    due_back = models.DateField(null=True, blank=True) 
 
    AVAILABILITY = ( 
        ('a', 'Available'), 
        ('o', 'On loan'), 
        ('n', 'Not available'), 
        ('r', 'Reserved'), 
    ) 
 
    status = models.CharField(choices=AVAILABILITY, blank=True) 

我的问题是 due_back 和 status 这两个字段相互依赖。例如,如果这本书是“借出的”,那么设置到期日期就没有意义。

目标是如果这本书是“借出的”,那么这本书可能只有一个 due_back 日期。但是如何做到这一点,是否有针对此类问题的“最佳实践”?

请您参考如下方法:

我正在尝试回答我自己的问题。我进一步查看了 Django 文档,看起来 Model.clean() 方法是这里的解决方案。

https://docs.djangoproject.com/en/1.11/ref/models/instances/#django.db.models.Model.clean

如果有人知道更好的解决方案,请发布。 :)