【问题标题】:how to create a selection box?如何创建选择框?
【发布时间】:2014-03-31 15:41:42
【问题描述】:

请帮助创建选择框管理面板。我用: 模型.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”,看起来像this

【问题讨论】:

    标签: python django python-3.x


    【解决方案1】:

    您不应将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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多