Я хочу создать приложение для отслеживания расходов, где каждый пользователь может вводить расходы и классифицировать их по своим категориям.Вот определение модели, которое я использую:
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)
Каждая категория должна быть связана с пользователем, чтобы мы могли отображать каждому пользователю его собственные категории, которые можно выбрать при вводе расходов.По тем же причинам каждая запись о расходах должна быть связана с пользователем.Но в определении расходов у нас есть 2 ссылки на пользовательские модели, одна непосредственно через поле 'user', а другая через поле 'category', в котором есть пользовательская ссылка.
Я считаю, что несколько ссылок, подобных этойэто плохо.Есть ли лучший способ смоделировать это?Я понимаю, что мы можем узнать пользователя по ссылке на категорию, но это выглядит окольным путем.