从Django中的通用类视图中删除选项

时间:2019-06-29 00:04:52

标签: django python-3.x django-views

我本周刚开始学习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()函数的代码中设置的人)在呈现时作为模板中“接收方”的选项。

1 个答案:

答案 0 :(得分:2)

覆盖get_form的{​​{1}}方法并更改该字段的查询集,如下所示:

CreateView