管理で行うことは可能ですが、非常に簡単な方法はありません。また、Django管理者に依存しないように、モデルにほとんどのビジネスロジックを保持することをお勧めします。
モデルに2つの別々のフィールドがある場合は、おそらくそれがより簡単になります(さらにはさらに優れているかもしれません)。次に、それらを組み合わせるメソッドをモデルに追加します。
例えば:
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)