0

小さなジム用のジャンゴ管理アプリを開発したいと思います。

メンバーのリストがあります

各メンバーは 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 で可能ですか、それともカスタムが必要ですか?管理者?

4

1 に答える 1