允许用户在choicefield中创建新选项的正确方法

时间:2014-04-06 04:12:33

标签: python django model

我需要它,以便用户能够创建额外的角色,如果它不在TYPES_CHOICES元组内。我有它,如果角色不可用,他们可以选择'其他',然后创建一个额外的角色。

我希望它能让他们只从元组中选择一个xor来创建一个额外的角色并选择该角色。我会在models.py中进行验证检查吗?或者当我创建表单时?

class ExtraRole(models.Model):
    name = models.CharField(max_length = 20)

    def __unicode__(self): 
        return self.name

class Role(models.Model):
    TYPES_CHOICES = (
        ('PLAYER', 'Player'),
        ('CONDUCTOR', 'Conductor'),
        ('COMMITTEEMEMBER', 'Committee Member'),
        ('LIBRARIAN', 'Librarian'),
        ('TUTOR', 'Tutor'),
        ('ACCOUNTANT', 'Accountant'),
        ('PRESIDENT', 'President'),
        ('CHAIRMAN', 'Chairman'),
        ('SECRETARY', 'Secretary'),
        ('OTHER', 'Other')
    )
    type = models.CharField(_('Type'), max_length = 20, choices = TYPES_CHOICES)
    extra_roles = models.ForeignKey(ExtraRole)

    def __unicode__(self):
        return self.type

0 个答案:

没有答案