Python 如何创建选择框?

Python 如何创建选择框?,python,django,python-3.x,Python,Django,Python 3.x,请帮助创建selectBox adminpaneli。我使用: models.py: from django.db import models from django.forms.models import ChoiceField from django import forms CHOICES = ('volvo', 'saab', 'opel', 'audi', 'cyan',) class Sponsors(models.Model): title = models.Char

请帮助创建selectBox adminpaneli。我使用: models.py:

from django.db import models
from django.forms.models import ChoiceField
from django import forms

CHOICES = ('volvo', 'saab', 'opel', 'audi', 'cyan',)


class Sponsors(models.Model):
    title = models.CharField(max_length=30)
    link = models.URLField(max_length=100)
    background_color = forms.ChoiceField(widget=forms.Select, choices=CHOICES)
admin.py:

from django.contrib import admin
from sponsors.models import Sponsors


class sponsorsAdmin(admin.ModelAdmin):
    fields = ['title', 'link', 'background_color']  
    list_display = ('title',)
    search_fields = ['title']

    class Meta:
        verbose_name = 'Спонсор'
        verbose_name_plural = 'Спонсоры'        


admin.site.register(Sponsors, sponsorsAdmin)
因此,管理面板只有可见字段“id”、“标题”、“链接”。但“背景颜色”字段不可见。它也不存在于数据库中


我需要在adminpanel中输入“background\u color”,类似于:

而不是将
background\u color
字段添加到模型中,您应该将ModelForm子类化以包含该字段

class Sponsors(models.Model):
    title = models.CharField(max_length=30)
    link = models.URLField(max_length=100)


CHOICES = ('volvo', 'saab', 'opel', 'audi', 'cyan',)


class SponsorsForm(models.ModelForm):

    class Meta:
        model = Sponsors

    background_color = forms.ChoiceField(choices=CHOICES)


class sponsorsAdmin(admin.ModelAdmin):
    ...
    form = SponsorsForm