[英]How to set fields/model to readonly if one attribute is set to true in Django?
所以,我得到了三個類:
class User(...):
#... other fields
name = models.CharField()
class Equipment(...):
#... other fields
inUse = models.Boolean(default=False)
class Ticket(...):
#... Other fields
user = models.ForeignKey(...)
equipment = models.ForeignKey(...)
ended = models.Boolean(default=False)
現在,當我創建一個新的Ticket
,設備的“inUse”屬性更改為 True,因此我不能將相同的Equipment
給多個User
。 問題是,當我將Ticket
設置為“結束”時,我仍然可以將其更改為“未結束”。 一旦我將Ticket
的“結束”屬性設置為 True,我就不想再改變它。
PS:在設置新Ticket
或將其更改為“結束”時,我將覆蓋方法 save 以在Equipment
進行更改。
管理文件
from django.contrib import admin
from .models import Equipamento, TipoEquipamento, Funcionario, Setor, Ticket
# Register your models here.
class EquipamentoAdmin(admin.ModelAdmin):
list_display = ['codigo', 'categoria', 'descricao', 'ativo', 'emUso']
search_fields = ['codigo', 'descricao']
class FuncionarioAdmin(admin.ModelAdmin):
list_display = ['nome', 'setor', 'email']
search_fields = ['codigo', 'nome']
class TicketAdmin(admin.ModelAdmin):
list_display = ['id', 'get_user_name', 'get_equipment_name', 'dataDevolucao', 'finalizado']
autocomplete_fields = ['usuario', 'equipamento']
def get_user_name(self, obj):
return obj.usuario.nome
def get_equipment_name(self, obj):
return obj.equipamento.descricao
get_user_name.short_description = 'Funcionario'
get_equipment_name.short_description = 'Equipamento'
愚蠢的問題,幾分鍾后我意識到我可以在模型中設置一個像“can Change”這樣的字段,這樣當我更改Status
該字段將設置為 false,並且我將無法再更改該模型。 Daaah,還是謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.