django - Django 一对多(0..4)关系
问题描述
我想知道是否有某种方式可以建立关系0..4。
我的意思是,1 个用户有 0 到 4 个设备,1 个设备属于一个用户。
我怎么能代表它?那 0..4 可以表示,还是应该在我的程序逻辑上控制?
解决方案
创建新设备时,在 clean 方法中检查该用户的设备不超过 4 个。就像是:
class Device(models.Model):
user = models.ForeignKey(User)
# ...
def clean(self):
user_devices = self.user.device_set.all()
if self.pk:
# Exclude me
user_devices = user_devices.exclude(pk=self.pk)
if user_devices.count() >= 4:
raise ValidationError({'user': "Cant have more than 4 devices"})
推荐阅读
- javascript - Firefox:第一个 CORS 请求被阻止,第二个有效
- processing - 如何为处理中的饼图创建单独的类选项卡?
- iis - IIS 页面缓冲慢下来
- r - 有没有办法在 dplyr 中对矩阵进行矢量化?
- reactjs - 单个 url 下的不同静态页面,取决于 cookie
- pdf - 这个PDF有问题吗?
- javascript - 1700 小时后的暗模式
- php - 如何处理两个相邻的 JSON 对象?
- python - 将 ripgrep 的输出通过管道传输到 Python 进行过滤(将文件名与匹配项分开)
- jsf - 在 JSF 中使用 HTML5 的输入表单属性