我正在尝试使用 ModelForm 添加我的数据。它运行良好,除了 ForeignKey 下拉列表显示所有值,我只希望它显示与登录用户相关的值。
这是我的 ExcludedDate 模型,我要添加的记录:
class ExcludedDate(models.Model):
date = models.DateTimeField()
reason = models.CharField(max_length=50)
user = models.ForeignKey(User)
category = models.ForeignKey(Category)
recurring = models.ForeignKey(RecurringExclusion)
def __unicode__(self):
return self.reason
这是类别的模型,它是包含我想按用户限制的关系的表:
class Category(models.Model):
name = models.CharField(max_length=50)
user = models.ForeignKey(User, unique=False)
def __unicode__(self):
return self.name
最后,表单代码:
class ExcludedDateForm(ModelForm):
class Meta:
model = models.ExcludedDate
exclude = ('user', 'recurring',)
如何让表单仅显示 category.user 等于登录用户的类别子集?
原文由 harwalan 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以在 init 中自定义表单
在视图中,在构建表单时,除了标准表单参数之外,您还将指定当前用户: