django - 食物追踪器的基本数据模型
问题描述
我是数据建模的新手,正在尝试为简单的食物跟踪器开发 Django 模型。
你吃了什么?
- 薄煎饼
一顿饭
- 早餐
原料
- 蛋
- 面粉
- 牛奶
过敏原
- 蛋
当用户记录他们的食物、膳食和成分时,它会查找这些成分中的任何一种是否是已知的过敏原。什么是合适的数据模型?我的猜测如下。
from django.db import models
from django.conf import settings
class Meal(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Food(models.Model):
date = models.DateTimeField()
name = models.CharField(max_length=50)
notes = models.TextField(max_length=200, null=True)
meal = models.ForeignKey(Meal, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
def __str__(self):
return self.name
class Ingredient(models.Model):
name = models.CharField(max_length=50)
foods = models.ManyToManyField(Food)
def __str__(self):
return self.name
class Allergen(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
ingredients = models.ManyToManyField(Ingredient)
解决方案
只需向 Ingrediant 模型添加一个 is_allergent 布尔字段。
将过敏视为 Ingrediant 的一个属性。它可能过敏或不过敏。
推荐阅读
- flutter - 如何在flutter中向fl_chart添加滚动条?
- python - StemGraphics 输出(无输出)
- c++ - 类没有友元方法的成员
- ios - Flutter Firestore 读写响应在 Ios 中非常慢
- javascript - Map.foreach 中的渲染组件
- java - 我想从一个 API 响应体中获取价值,并使用 Cucumber gherkin 将其用于另一个 api 请求
- jquery - 如何验证重复的表格?
- ios - 如何解决颤振中的“allowsBackgroundLocationUpdates”错误
- c# - 使用 Blazorise DataGrid 在移动设备上隐藏一些列
- ruby-on-rails - 资产管道中不存在资产“rails_admin/rails_admin.css”。):