我需要做的事情似乎很简单,但我已经花了很多时间试图解决它......但没有成功。 所以,我定义了一个模板模型:
class Template(models.Model):
TYPE_CHOICES = (
('campaign','Campaign email template'),
('system','System email template'),
)
Name = models.CharField(max_length=255)
Type = models.CharField(max_length=255, verbose_name='Template type', choices=TYPE_CHOICES)
Content = models.TextField(max_length=3000)
def __unicode__(self):
return self.Name
我的系统电子邮件模型定义如下:
class SystemEmail(models.Model):
Name = models.CharField(max_length=255)
Template = models.ForeignKey(Template,null=True)
Subject = models.CharField(max_length=255,help_text='Shortcodes are allowed (see bottom of the page)')
Content = models.TextField(max_length=3000,)
因此,我的系统电子邮件模型中的模板字段是一个外键,将通过下拉列表来表示。但是,我不希望所有模板记录出现在该下拉列表中,而只是那些具有type ='system'的模板
那么,我应该如何告诉Django这样做?
答案 0 :(得分:2)
template = models.ForeignKey(Template, null=True, limit_choices_to={'type': 'system'})
(请为您的字段使用小写名称。)