【发布时间】:2018-01-04 06:07:31
【问题描述】:
我有两个模型:
第一个:
class A(models.Model):
a_user = models.ForeignKey(User, unique=False, on_delete=models.CASCADE)
a_title = models.CharField("A title", max_length=500)
第二个:
class B(models.Model):
b_a = models.ForeignKey(A, verbose_name=('A'), unique=False, on_delete=models.CASCADE)
b_details = models.TextField()
现在,我正在使用 CreateView 创建表单以进行值填充:
class B_Create(CreateView):
model = B
fields = ['b_a','b_details']
然后使用它在模板中呈现这些字段。
现在,我的问题是,在给出字段 b_a (即下拉列表)时,它会列出模型 A 的所有值,但需要仅列出 的值>model A 属于特定登录用户,在下拉列表中。
我已经看到了所有的答案,但仍然无法解决问题。 我尝试过的事情:
- limit_choices_to 在模型中:无法在 limit_choices 中传递 A 的值
- form_valid : CreateView 中没有模型 A,因为在 B_Create 中只有 B 是引用模型
- 通过 url 传递模板中 A 的主键 :则模板中没有 A 的实例,因此无法访问。另外,不想在模板中处理它。
我是 Django 新手,还在学习,所以不知道要覆盖管理表单。
如果可能的话,请提出实施方式。我已经研究并尝试了大多数类似的问题,但对于我的特定问题没有结果。我觉得,这是一个愚蠢的问题,但我被困在这里,所以需要帮助。
谢谢..
(请随时提出更正建议。)
【问题讨论】: