小さなジム用のジャンゴ管理アプリを開発したいと思います。
メンバーのリストがあります
各メンバーは 1 枚以上のカードを持つことができます
各カードには 1 つ以上のワークアウトを含めることができます
各ワークアウトには 1 つ以上のエクササイズを含めることができます
各演習には次のフィールドがあります。
エクササイズ名(エクササイズ名のリストから選択可能)、シリーズ番号(シリーズのリストから選択可能)、繰り返し番号(繰り返しのリストから選択可能)、実行モード(リストから選択可能)実行)、休憩時間 (実行のリストから選択できます)。
これがmodels.pyの私の可能な実装です:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Member(models.Model):
#Member data
name = models.CharField(max_length=50)
surname = models.CharField(max_length=50)
#Contact
email = models.EmailField(blank=True, null=True)
phone = models.CharField(max_length=50, blank=True, null=True)
#Body
birthday = models.DateField(blank=True, null=True)
height = models.IntegerField(blank=True, null=True)
weigth = models.IntegerField(blank=True, null=True)
#Trainer notes
trainer = models.ForeignKey(User, limit_choices_to={'is_staff': True, 'is_superuser': False}, blank=True, null=True)
note = models.CharField(max_length=160, blank=True, null=True)
#Registration status
registration = models.DateField(auto_now_add=True)
expiration = models.DateField(blank=True, null=True)
card = models.OneToOneField('Card')
def __str__(self):
return u'%s %s' % (self.surname, self.name)
class Card(models.Model):
number = models.IntegerField()
#Card status
card_creation = models.DateField(auto_now_add=True)
card_expiration = models.DateField(blank=True, null=True)
workout = models.ForeignKey('Workout')
def __str__(self):
return u'%s' % (self.number)
class Workout(models.Model):
number = models.IntegerField()
exercise = models.ForeignKey('Exercise')
def __str__(self):
return u'%s' % (self.number)
class Exercise(models.Model):
name = models.ForeignKey('Name')
series = models.ForeignKey('Serie')
repetitions = models.ForeignKey('Repetition')
executions = models.ForeignKey('Execution', blank=True, null=True)
rest = models.ForeignKey('Rest')
def __str__(self):
return u'%s' % (self.name)
class Name(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return u'%s' % (self.name)
class Serie(models.Model):
serie = models.CharField(max_length=50)
def __str__(self):
return u'%s' % (self.serie)
class Repetition(models.Model):
repetition = models.IntegerField()
def __str__(self):
return u'%s' % (self.repetition)
class Execution(models.Model):
execution = models.CharField(max_length=50)
def __str__(self):
return u'%s' % (self.execution)
class Rest(models.Model):
rest = models.IntegerField()
def __str__(self):
return u'%s' % (self.rest)
これが説明どおりに機能するかどうかはわかりません。可能な実装を提案していただけますか?最後に、メンバー、カード、ワークアウトなど、すべてのデータを含む 1 つのビューのみを表示したいので、スタッフ ユーザーはユーザーとリンクされたワークアウト カードを変更できます) admin.py で可能ですか、それともカスタムが必要ですか?管理者?