In a Django form, how do I make a field readonly (or disabled) so that it cannot be edited?

后端 未结 26 1013
-上瘾入骨i
-上瘾入骨i 2020-11-22 04:09

In a Django form, how do I make a field read-only (or disabled)?

When the form is being used to create a new entry, all fields should be enabled - but when the recor

26条回答
  •  悲&欢浪女
    2020-11-22 04:29

    Setting readonly on a widget only makes the input in the browser read-only. Adding a clean_sku which returns instance.sku ensures the field value will not change on form level.

    def clean_sku(self):
        if self.instance: 
            return self.instance.sku
        else: 
            return self.fields['sku']
    

    This way you can use model's (unmodified save) and avoid getting the field required error.

提交回复
热议问题