(Django) Admin datatable не показывает данные в поле select

Ниже приведена проблема, с которой я сталкиваюсь:

enter image description here

Колонка типа препарата, которая представляет собой поле выбора с заданными опциями

drug_types_list = (
    ('pills','PILLS'),
    ('pellets','PELLETS'),
    ('lozenges','LOZENGES'),
)

почему-то не показывал никаких данных. Хотя внутри моей Jquery Datatable все отображалось.

enter image description here

Так что я пошел в свой 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

Можете ли вы помочь мне с этой проблемой? Спасибо!

Вернуться на верх