我有一个带有几个字段的对象,例如订单行,参考号,状态
州是选择草案并确认
我想要的是当记录状态得到确认后,其他字段无法修改/只读
在django中做到这一点的最佳/常用方法是什么? 感谢
答案 0 :(得分:0)
真/假字段(即BooleanField
)可以完成这项工作。阅读此处的文档:https://docs.djangoproject.com/en/dev/ref/models/fields/#booleanfield
答案 1 :(得分:0)
我厌倦了3个示例字段。
我创建了一个包含3个字段的模型:
class New(models.Model):
title = models.CharField(max_length=100,unique=True)
body = models.TextField()
editable = models.BooleanField(default=True)
def __unicode__(self):
return self.title
我的forms.py代码是:
class MyNewForm(forms.ModelForm):
class Meta:
model = New
def clean(self):
cleaned_data = super(MyNewForm,self).clean()
title = cleaned_data.get('title')
body = cleaned_data.get('body')
editable = cleaned_data.get('editable')
if self.instance.pk:
try:
row = New.objects.get(id=self.instance.pk)
except New.DoesNotExist:
raise forms.ValidationError('Record not found')
if not row.editable and not editable:
raise forms.ValidationError('This record is not editable')
return cleaned_data
我的admin.py代码是:
from news.models import New
from news.forms import MyNewForm
class MyNew(admin.ModelAdmin):
form = MyNewForm
admin.site.register(New,MyNew)
希望它适合你。