【问题标题】:Adding Multiple Checbox Group to Django Admin Panel将多个复选框组添加到 Django 管理面板
【发布时间】:2013-08-21 08:27:15
【问题描述】:

我想根据复选框选择添加多个复选框以过滤视图中的花朵。我对 Django 非常陌生。如何修改我的 models.py ?

from django.db import models

class Flower(models.Model):
    name = models.CharField(max_length = 30)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    details = models.TextField()

    def __unicode__(self):
        return self.name
    def my_upload_to(instance, filename):
        return 'static/media/' + instance.name + '.jpg'
    image = models.ImageField(upload_to=my_upload_to)

【问题讨论】:

    标签: django django-models django-forms django-admin


    【解决方案1】:

    您可以使用表单完成,这里是代码:

    from django.forms import widgets
    class FlowerForm(forms.ModelForm):
        name = forms.ModelMultipleChoiceField(label='Name',queryset=Flower.objects.all(),
               widget=forms.CheckboxSelectMultiple)
        class Meta:
            model = Flower
    

    【讨论】:

    • 管理面板没有任何变化。我知道这个代码添加了花复选框。我想添加一些属性 od 花的复选框,并希望在视图中根据此属性进行过滤。
    • 您需要使用选定的清单创建自定义表单。
    【解决方案2】:

    类似这样的事情:

    在views.py中:

    # get the selected flower id as fid
    FlowerForm = create_flower_form(fid)
    

    在forms.py中:

    def create_flower_form(id):
    class fform(forms.ModelForm):
    
        name = forms.ModelChoiceField(label='Flower type ',
                queryset=FLower.objects.filter(id=fid))
    
    
        class Meta:
    
            model = Flower
    
    return fform
    

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多