我想创建一个费用跟踪应用程序,每个用户都可以在其中输入费用并将其分类到自己的类别中。这是我使用的模型定义:
from django.db import models
from django.contrib.auth.models import User
class Category(models.Model):
user = models.ForeignKey(User, related_name="my_categories")
name = models.CharField(max_length=50)
class Expense(models.Model):
date = models.DateField()
amount = models.IntegerField()
description = models.TextField()
category = models.ForeignKey(Category)
user = models.ForeignKey(User)
每个类别都必须与一个用户相关联,以便我们可以在输入费用时向每个用户显示他自己的类别以供选择。出于类似的原因,每个费用记录都应该与一个用户相关联。但是在费用的定义中,我们有两个对用户模型的引用,一个直接通过“用户”字段,另一个通过具有用户参考的“类别”字段。
我相信像这样的多次引用是一件坏事。有没有更好的方法来建模这个?我知道我们可以从类别参考中找到用户,但这似乎是一种迂回的方式。