python-3.x 有没有办法在django中将外键设置为只读,并且仍然提交表单而没有任何错误?

hmtdttj4  于 2023-11-20  发布在  Python
关注(0)|答案(1)|浏览(102)

我一直试图使我的django表单的外键只读,我正在创建一个网络应用程序与系统控制,我不希望某些用户编辑提交的字段

class ApproveForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ApproveForm, self).__init__(*args, **kwargs)
        # Filter the queryset for the 'category' field to only include active categories
        self.fields['category'].queryset = Category.objects.filter(status='active')

        # Filter the queryset for the 'category' field to only include active categories
        self.fields['location'].queryset = Location.objects.filter(status='active')

        self.fields['location'].widget.attrs['readonly'] = True    


    class Meta:
        model = Request
        fields = ('item','category','location','quantity','comments' )

        widgets = {
            'item':forms.Select(attrs={
                'class':'form-control', 
            }),
            'category':forms.Select(attrs={
                'class':'form-control',
            }),
             'location':forms.Select(attrs={
                'class':'form-control',
            }),
            'quantity':forms.NumberInput(attrs={
                'class':'form-control', 'min':'0', 'readonly':'readonly'
            }),
            'comments': forms.Textarea(attrs={
                'rows':4,'cols':5, 'class':'form-control'
            })

        }

字符串
它不工作,我已经尝试使用隐藏,它隐藏了所有的整体价值观离开标签显示

k4emjkb1

k4emjkb11#

如果你只是想以只读方式向用户显示现有对象的值,你可以从表单中删除字段,直接通过表单示例访问,就像这样。
1.从表单中删除字段
fields =('item','category','quantity','comments')
1.通过示例访问html中的字段值。
联系我们

相关问题