관리자에서 할 수는 있지만 매우 간단한 방법은 없습니다. 또한 대부분의 비즈니스 로직을 모델에 유지하도록 조언하고 싶습니다. 따라서 Django Admin에 의존하지 않을 것입니다.
모델에 두 개의 개별 필드가 있으면 더 쉬울 수도 있고 더 좋을 수도 있습니다. 그런 다음 모델에이를 결합하는 방법을 추가합니다.
예를 들면 :
class MyModel(models.model):
field1 = models.CharField(max_length=10)
field2 = models.CharField(max_length=10)
def combined_fields(self):
return '{} {}'.format(self.field1, self.field2)
그런 다음 관리자 combined_fields()
에서 읽기 전용 필드로 추가 할 수 있습니다 .
class MyModelAdmin(models.ModelAdmin):
list_display = ('field1', 'field2', 'combined_fields')
readonly_fields = ('combined_fields',)
def combined_fields(self, obj):
return obj.combined_fields()
당신이를 저장하려면 combined_fields
데이터베이스에 때 모델 저장 당신은 또한 저장할 수 :
def save(self, *args, **kwargs):
self.field3 = self.combined_fields()
super(MyModel, self).save(*args, **kwargs)