我有一组人,我想向每个人提供一张有个人信息的卡片和要做的事情列表,这个列表没有固定大小(它可能有一个或多个字段),管理员负责填写此列表。
如何通过管理页面(不编码)为管理员权限添加额外字段?是可能还是必须使用固定大小的列表?
class Admin(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
birth_date = models.DateField(blank=True, null=True)
address = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=50, blank=True, null=True)
phone_number = models.CharField(max_length=20, blank=True, null=True)
email = models.EmailField(blank=True, null=True)
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
birth_date = models.DateField(blank=True, null=True)
address = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=50, blank=True, null=True)
phone_number = models.CharField(max_length=20, blank=True, null=True)
email = models.EmailField(blank=True, null=True)
admin = models.ForeignKey(Admin, blank=True, null=True)
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Card(models.Model):
id_number = models.IntegerField(default=0)
person = models.OneToOneField(Person, primary_key=True)
def __unicode__(self):
return unicode(self.id_number)
class Things_to_do(models.Model):
name = models.CharField(max_length=50)
repetitions = models.IntegerField(default=0, blank=True, null=True)
series = models.IntegerField(default=0, blank=True, null=True)
executions = models.IntegerField(default=0, blank=True, null=True)
rest_time = models.IntegerField(default=0, blank=True, null=True)
card = models.ForeignKey(Card, blank=True, null=True)
def __unicode__(self):
return unicode(self.name)
答案 0 :(得分:0)
您可以尝试创建自定义JSONField:http://djangosnippets.org/snippets/1478/
通过这样的内容,您可以将所有字段存储为词典。 试着看看这个:How to store a dictionary in a Django database model's field