您好我目前有这个型号
class Member(models.Model,get_fields):
first_name = models.CharField(max_length = 20)
last_name = models.CharField(max_length = 20)
ROLE_CHOICES = (
('PLAYER', 'Player'),
('CONDUCTOR', 'Conductor'),
('COMMITTEEMEMBER', 'Committee Member'),
('LIBRARIAN', 'Librarian'),
('TUTOR', 'Tutor'),
('ACCOUNTANT', 'Accountant'),
('PRESIDENT', 'President'),
('CHAIRMAN', 'Chairman'),
('SECRETARY', 'Secretary'),
('OTHER', 'Other')
)
role_choices = models.CharField(_('Role'), max_length = 20, choices = ROLE_CHOICES)
如果用户不可用,我希望用户能够添加额外的角色选择。所以我也创造了
class ExtraRole(models.Model,get_fields):
name = models.CharField(max_length = 20)
如何设置表单以便用户能够在创建成员视图上创建一个extrarole(如果它不存在),然后将其添加到role_choices元组中?是否可以将foreignkey添加到role_choices元组?这是正确的方法吗?
答案 0 :(得分:1)
可以在role_choices中添加类似于外键的内容,但这对创建来说会非常复杂,也可能是“错误”的方法。您应该为角色选择创建一个新模型。如果选择不会改变,则使用元组作为您的选择很好,但如果您想让用户能够编辑这些选项,那么您需要将其创建为模型并将外键字段添加到成员模型
class MemberRole(models.Model):
name = models.CharField(max_length=20)
class Member(models.Model, get_fields):
first_name = models.CharField(max_length = 20)
last_name = models.CharField(max_length = 20)
role_choices = models.ForeignKey(MemberRole)