0

我正在尝试显示用户在申请时可以选择的时间段。有时会有相当多的插槽。

问题是我目前正在使用单选按钮和 ModelChoiceField。

我在下面附上了我目前拥有的图片。

这就是它现在所做的。

我不确定是否需要使用 React 或其他前端框架。我想要的是以一种方式显示单选按钮,这不仅仅是一个巨大的列表,而是一个较短的列表配对成组。

我曾想过使用 CSS 来隐藏一些时间。也许每个小时都有一个复选框,可以在该小时内显示和隐藏单选按钮(大多数插槽是 5 分钟),但我在尝试使用 ModelChoiceField 过滤和呈现表单时遇到了困难。

我的 ModelForm 类的价值:

class ApplicationForm(forms.ModelForm):
    slot_choice = forms.ModelChoiceField(queryset=None,
        label="Please select a time slot. (You can change this at a later time if your schedule changes)",
        empty_label="Please select a time slot",
        widget=forms.RadioSelect(attrs={'class': 'custom-control-input'}))

    class Meta:
        model = Application
        fields = ['resume', 'cover_letter']

    def __init__(self, show, *args, **kwargs):
        super(ApplicationForm, self).__init__(*args, **kwargs)
        # only display slots for current show that are not filled.
        self.fields['slot_choice'].queryset = Slot.objects.filter(show=show).filter(application__isnull=True).order_by('start')

我的观点实际上只是将 Show 对象作为参数传递给表单。类似的东西ApplicationForm(Show.objects.get(pk=show_id))

如果有帮助,请提供有关模型的一些背景知识。有一个显示模型。然后是 2 个模型:Slot 和 Application,它们都有一个 show fk。Slot 也有一个应用程序外键。表单的目标(可行)是创建一个应用程序对象,并将应用程序添加到可用的 Slot 对象中。

4

0 回答 0