请帮助创建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”,“title”,“link”。但是“background_color”字段不可见。它也不存在于DB中。
我需要在adminpanel中将“background_color”字段显示为this:
答案 0 :(得分:0)
不应将background_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