以这种方式使用数据库相当新鲜。我在下面有一些示例代码。我已经获得了仪器对象,它将是一个类型的乐器,吉他,钢琴等的数据库列表。然后用户对象将具有ManyToMany,因此每个用户可以拥有他们的个人资料中列出的那些数量玩。
我所坚持的是,我希望拥有一个可以获得每种乐器经验的领域。只是不确定如何在没有静态字段的情况下实现这一目标,因为它可以有多少工具(因为它可以修改,可以改变)。感谢任何指向正确的方向。
class Instrument(models.Model):
# Name of the instrument
name = models.CharField(_('Name of Instrument'), blank=True, max_length=255)
def __str__(self):
return self.name
class Meta:
ordering = ('name',)
@python_2_unicode_compatible
class User(AbstractUser):
# First Name and Last Name do not cover name patterns
# around the globe.
name = models.CharField(_('Name of User'), blank=True, max_length=255)
zipcode = models.IntegerField(_('Zip Code of the User'), blank=True, null=True)
instruments = models.ManyToManyField(Instrument)
答案 0 :(得分:1)
似乎是through model with extra fields的教科书用例。
class InstrumentExperience(models.Model):
user = models.ForeignKey('User')
instrument = models.ForeignKey('Instrument')
experience = models.CharField(max_length=100)
class User(AbstractUser):
...
instruments = models.ManyToManyField('Instrument', through='InstrumentExperience')