Make a foreign key field in a django form read-onl

2020-06-22 08:34发布

How do I make a foreign key field in a form read only but still allow this field to be recognized as valid once the form is submitted? According to W3C, disabled fields are left out once the form is submitted....using the code below, I can set the field as disabled, thus readonly, but my form doesn't go through

    def __init__(self, *args, **kwargs):
       super(IssuesForm, self).__init__(*args, **kwargs)
       self.fields['vehicle'].widget.attrs['readonly'] = True

Ideas....?

4条回答
我只想做你的唯一
2楼-- · 2020-06-22 09:25

I've had this problem and I used JavaScript to solve

查看更多
疯言疯语
3楼-- · 2020-06-22 09:29

I came across this question after many other solutions didn't seem to work. Here's example code of how I got it work successfully using the "hidden" suggestion, in case it's helpful to anyone else.

class EditExifForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EditExifForm, self).__init__(*args, **kwargs)
        self.fields['image'].widget.attrs['hidden'] = True    # This is the solution
        # Setting as 'readonly' didn't make a difference
        # Setting as 'disabled' made the form not update the database

    class Meta:
        model = exif
        ...
查看更多
\"骚年 ilove
4楼-- · 2020-06-22 09:32

I don't know the Django or Python syntax, however, an input field of type="hidden" might be what you're looking for. If you wanted to still display the value using a disabled field, you could do that too, and rely on the hidden field for the actual value.

查看更多
相关推荐>>
5楼-- · 2020-06-22 09:35

Maybe I can try the hidden field...I knew this was a possibility, but I wanted to be sure there was no other way

查看更多
登录 后发表回答