django 관리자 페이지에 모델 action 추가.
특정 모델의 기본 action 은 아래 그림처럼 삭제가 기본이다. (django import-export를 설치했기 때문에 export action이 더 보인다).
여기에 내가 원하는 action을 추가하고싶다면 다음과 같이 처리해야한다.
1. app/models.py 의 모델이 아래와 같다.
class NetworkDevice(models.Model):
dev_ip = models.GenericIPAddressField(default='0.0.0.0', verbose_name='Network Device IP Address')
dev_nip = models.BigIntegerField(blank=True, null=True, verbose_name='Numeric IP')
username = models.CharField(max_length=24, verbose_name='UserName')
password = encrypt(models.CharField(max_length=50, verbose_name='Password'))
protocol = models.CharField(max_length=10, choices=protocols, verbose_name='Connection Protocol')
platform = models.CharField(max_length=16, null=True, blank=True, verbose_name='Platform')
port = models.CharField(max_length=5, verbose_name='Port number')
vendor = models.CharField(max_length=32, verbose_name='Vendors')
isl3 = models.BooleanField(default=False, verbose_name='L3')
hostname = models.CharField(max_length=64, null=True, blank=True, verbose_name='Hostname')
collect = models.BooleanField(default=False, verbose_name='Collect Data')
uplink = models.TextField(null=True, blank=True, verbose_name='UP Link port list')
model_number = models.CharField(max_length=32, null=True, blank=True, verbose_name='Model')
category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.CASCADE, verbose_name='Category')
class Meta:
verbose_name_plural = 'Basic Device Information.'
Continue reading