У меня есть требование в Django 2.1 admin, форма имеет настраиваемое поле, которое отображается как множественный выбор, когда вызывается добавление формы и когда вызывается изменение формы, тогда ранее выбранное значение должно отображаться как выбранное с помощью javascript. Но я не могу показать уже выбранное значение.
Класс модели
from django.db import models
from django.utils import timezone
# Create your models here.
class Notification(models.Model):
id = models.AutoField(primary_key=True)
notif_ty = models.CharField(max_length=24)
alert_ty = models.CharField(max_length=30)
scheduler = models.IntegerField(default=0)
box_ty = models.TextField(verbose_name="Box Type", max_length=200, blank=True, null=True)
Класс администратора
from django.contrib import admin
from django import forms
from django.contrib import messages
from constants import constants
from string import Template
import json
from django.conf import settings
# Register your models here.
from .models import Notification
import logging
logger = logging.getLogger('django')
class NotificationAdmin(admin.ModelAdmin):
class Media:
js = ['admin/js/notification/pn1.js',]
def formfield_for_dbfield(self, db_field, **kwargs):
logger.debug("formfield_for_dbfield method get called...")
field = super(NotificationAdmin, self).formfield_for_dbfield(db_field, **kwargs)
# We can't assume that kwargs['initial'] exists!
if 'initial' not in kwargs:
kwargs['initial'] = {}
if db_field.name == 'box_ty':
logger.debug("fileds name>>>>>>>>> %r " , field)
field.initial = get_box_types() #'My initial description'
return field
def get_changeform_initial_data(self, request):
logger.debug("get_changeform_initial_data...")
boxes = get_box_types()
return {'box_ty': boxes}
def save_model(self, request, obj, form, change):
obj_x = Notification.objects.filter(schedule=0)
...
def get_box_types():
"""
This method will return box type list
"""
boxes = list()
try:
logger.debug("get_box_type method...")
_objects = BoxType.objects.filter(active=1)
logger.debug("Total active box type object in DB: %r", len(_objects))
for po in _objects :
data = {}
data.update([('id', po.id)])
data.update([('name', po.name.lower())])
data.update([('boxTy', po.box_type)])
boxes.append(data)
boxes = json.dumps(boxes, default=str).strip("'")
logger.debug("JSON of box types: %r", boxes)
except Exception as ex:
logger.exception(ex)
return boxes
admin.site.register(Notification, NotificationAdmin)
Теперь проблема в том, что метод formfield_for_dbfield
получает вызов add и меняет оба раза. Но невозможно установить ранее выбранное значение.
Если я использую метод formfield_for_dbfield
, то он вызывается только один раз, когда добавляется отображение формы при изменении формы.
Пожалуйста, сообщите мне, как установить ранее выбранное значение означает добавленное время, чтобы я мог показать ранее выбранное пользователем значение.

Теперь, когда пользователь выбирает 2 из 3, пользователь может видеть в качестве выбранного значения ( Разграничены $$$). как показано ниже 

Теперь я хочу выбрать значение выше. Пожалуйста, ведите меня.