【发布时间】:2015-04-25 16:56:40
【问题描述】:
我想在 django 1.8 中实现一个团队功能。 (团队如运动队)
每个用户一次最多可以加入一个团队,因此一个团队可以容纳多个用户。现在我不确定如何定义我的 models.py
我从这个核心开始,但现在我不确定如何建立团队的连接用户
from django.db import models
class Team(models.Model):
name = models.CharField(max_length=64, unique=True)
description = models.TextField(max_length=1024)
logo = models.ImageField()
from django.contrib.auth.models import User
class Player(models.Model):
user = models.OneToOneField(User)
team = ForeignKey('Team')
我现在是创建第二个类 user_team 还是只是将团队作为外键添加给用户? (如果这就是我需要这样做的方式?)
谢谢,
维吉
// 编辑:我在底部添加了一些代码。这个 Player 模型是否足以定义关系?
【问题讨论】:
-
你想用
team_id = model实现什么? -
你设置user profile model了吗?
-
如果您的
Player没有额外字段,我强烈建议您只保留一个Team模型并将player作为其中的ManyToMany 字段,引用User. -
@WeGi,你可以在你的
Team上实现一个TeamManager并添加任何方法,如add_player()并将所有逻辑/检查放入其中。 -
WeGi,是的,应该这样做。 @Anzel,确实,但稍后可能需要额外的字段,并且拥有
ForeignKey可以在数据库级别强制关系的唯一性,这将简化代码并减少出错的可能性。
标签: python django django-models