(Django) Admin datatable не показывает данные в поле select
Ниже приведена проблема, с которой я сталкиваюсь:
Колонка типа препарата, которая представляет собой поле выбора с заданными опциями
drug_types_list = (
('pills','PILLS'),
('pellets','PELLETS'),
('lozenges','LOZENGES'),
)
почему-то не показывал никаких данных. Хотя внутри моей Jquery Datatable все отображалось.
Так что я пошел в свой drugs/admin.py и изменил код следующим образом:
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
# local
from .models import Drug
from .forms import DrugForm
class DrugAdmin(ImportExportModelAdmin):
fields = ('drug_type',) # added
list_display = ['drug_id', 'name', 'drug_type', 'amount']
form = DrugForm # added
list_per_page = 20
search_fields = ['drug_id', 'name', 'drug_type', 'brand', 'description']
admin.site.register(Drug, DrugAdmin)
Я также изменил строку drug_type в моем drugs/forms.py следующим образом:
from django import forms
# local
from drugs.models import Drug
from .drug_types import drug_types_list
class DrugForm(forms.ModelForm):
class Meta:
model = Drug
fields = [
'drug_id', 'name', 'drug_type',
'amount',
]
widgets = {
'drug_id': forms.TextInput(attrs={ 'class': 'form-control', 'data-val': 'true', 'data-val-required': 'Please enter drug id', }),
'name': forms.TextInput(attrs={ 'class': 'form-control' }),
'drug_type': forms.Select(attrs={'class': 'form-control'}, choices=drug_types_list), # modified
'amount': forms.TextInput(attrs={ 'class': 'form-control' }),
}
но пока ничего не помогло.
drugs/models.py
Ниже представлена моя модель наркотика:
from django.db import models
from .drug_types import drug_types_list
class Drug(models.Model):
drug_id = models.CharField(max_length=20, unique=True, error_messages={'unique':"This drug id has already been registered."})
name = models.CharField(max_length=50)
drug_type = models.CharField(max_length=20, choices=drug_types_list, default='pills', blank=True, null=True)
amount = models.CharField(max_length=20, blank=True, null=True)
def __str__(self):
return self.name
Можете ли вы помочь мне с этой проблемой? Спасибо!