我本周刚开始学习Django,我想弄清楚如何从基于类的视图中呈现的选择菜单中删除选项。该下拉列表用于链接到我的用户表的外键字段。
这里的功能是我不希望当前登录的用户显示在该列表上(基本上,我不希望有人能够自己选择他们)。我该怎么做呢?
查看:
class TransferCreateView(CreateView):
model = Transfer
template_name = 'points/transfer_form.html'
fields = ['receiver', 'message', 'amount']
型号:
class Transfer(models.Model):
receiver = models.ForeignKey(User, null=False,
on_delete=models.CASCADE, related_name='receiver')
sender = models.ForeignKey(User, null=False, on_delete=models.CASCADE, related_name='sender')
amount = models.IntegerField(
validators=[
MinValueValidator(1),
MaxValueValidator(1000)],
null=False)
message = models.CharField(max_length=100)
date_sent = models.DateTimeField(default=timezone.now)
基本上,我不希望发送方(我将在form_valid()函数的代码中设置的人)在呈现时作为模板中“接收方”的选项。
答案 0 :(得分:2)
覆盖get_form
的{{1}}方法并更改该字段的查询集,如下所示:
CreateView