我需要向用户询问的两个安全问题及其相应的答案。安全问题将由我提供,所以它将是某种<select>。我创建了一个模型来存储名为UserProfile的用户配置文件。看上去:
class UserProfile(models.Model):
phone1 = models.CharField(help_text='Primary phone number')
phone2 = models.CharField(help_text='Secondary phone number', blank=True)
...我可以做这样的事情:
SECURITY_QUESTIONS_CHOICES = (
('PN', 'What is your telephone number?'),
('BF', 'What is the full name of your best friend?'),
...
)并将以下两个字段添加到我的模型中:
question1 = models.CharField(choices=SECURITY_QUESTIONS_CHOICES)
question2 = models.CharField(choices=SECURITY_QUESTIONS_CHOICES)但我希望能够修改安全问题的列表,所以我希望它也是一个模型。
我的问题是:
,有两个指向相同模型的字段的最佳方法是什么?
questions)是ManyToMany与SecurityQuestion的关系,并将注册表格中的数字限制为2?question1和question2),其中每个字段都是ForeignKey to SecurityQuestion。发布于 2012-03-18 23:51:53
我更希望为所有的安全问题创建一个单独的模型。它给了你灵活性。
class SecurityQuestions(models.Model):
class Meta:
db_table = 'security_questions'
id = models.AutoField(primary_key=True)
question = models.CharField(max_length = 250, null=False)
class UserProfile(models.Model):
----
----
user_questions = models.ManyToManyField(SecurityQuestions, through='SecurityQuestionsInter')
class SecurityQuestionsInter(models.Model):
class Meta:
db_table = 'security_questions_inter'
profile = models.ForeignKey(Profile)
security_questions = models.ForeignKey(SecurityQuestions)
answer = models.CharField(max_length = 250, null=False)https://stackoverflow.com/questions/9763099
复制相似问题