微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Django表单以更加用户友好的方式呈现单选按钮的大型查询

如何解决使用Django表单以更加用户友好的方式呈现单选按钮的大型查询

我正在尝试显示用户在申请时可以选择的时隙。有时会有很多插槽。

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

我在下面附上了我目前的照片。

This is what it does now.

我不确定是否需要使用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))之类的东西。

如果有帮助,可以参考模型的一些背景知识。有一个表演模型。然后有两个模型:Slot和Application都具有show fk。插槽也有一个应用程序外键。表单的目的(可行)是创建一个应用程序对象,并将该应用程序添加到可用的Slot对象中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。