django - 这 3 个模型的关系是什么:用户、生日、标签?
问题描述
我正在创建一个生日日历应用程序。它将具有以下模型: - Django 的用户模型 - 生日 - 标签(即朋友、家人)
我不确定如何为 Label 类建模。用户应该能够创建一个新的 Label 对象,然后可以在创建生日对象时使用该对象。用户还应该能够根据标签过滤生日。
您将如何在数据库中建模这些关系?
from django.conf import settings
from django.db import models
from django.utils import timezone
class Birthday(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
name = models.CharField(max_length=25)
day = models.DateField()
class Label(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
tag = models.CharField(max_length=25)
解决方案
class Label(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
tag = models.CharField(max_length=25)
class Birthday(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
name = models.CharField(max_length=25)
day = models.DateField()
label = models.ForeignKey(Label, on_delete=models.CASCADE)
使用标签作为生日的外键。这样你就会知道哪个生日与哪个标签有关。
然后,您可以根据这样的标签过滤掉生日。
Birthday.objects.filter(label__id=1)
推荐阅读
- algorithm - 如果找到了 NP 完全问题的多项式时间算法,这是否意味着所有 NP 问题的时间复杂度相同?
- google-cloud-platform - 如何获取 Google Cloud Platform (GCP) 上所有防火墙规则的历史记录
- python - TypeError:维度值必须是整数或无或具有 __index__ 方法,得到 TensorShape([None, 1])
- algorithm - 使用 DFS 计算距离
- c# - Task.Run 不在后台 c# 中运行任务
- mysql - 这些数据集与子查询结果的内部联接不同
- apache-spark - 运行不同 Spark 版本的 History Server
- java - CompareTo 不允许比较两个对象
- rendering - D3D11 CreateDeferredContext 错误,但从未创建延迟渲染上下文
- node.js - NodeJS:强制“正确”导入名称的 ESLint 规则