【问题标题】:create a selector widget in django form以 django 形式创建选择器小部件
【发布时间】:2015-04-13 21:46:22
【问题描述】:

我想在管理页面中创建一个类似于权限选择器的表单小部件。

我要选择记录的模型是数据库中的视图

class Ftp_Archivo(models.Model):
      id_lista = models.IntegerField(primary_key=True)
      id_proveedor = models.IntegerField()
      codigo_asignado = models.CharField(max_length=50, verbose_name='Codigo Asignado')
      nombre = models.CharField(max_length=150)
      archivo = models.CharField(max_length=500)

      class Meta:
            managed=False
            db_table='pc_archivos_no_migrados'

我想保存这个模型中的记录:

class PYC_Archivo(models.Model):
      id_archivo = models.AutoField(primary_key=True)
      id_proveedor =  models.ForeignKey(Proveedor,db_column='id_proveedor',verbose_name='Proveedor')
      codigo_asignado = models.CharField(max_length=50, verbose_name='Codigo Asignado')
      nombre = models.CharField(max_length=150)
      archivo = models.CharField(max_length=500)
      fecha_migracion = models.DateField(auto_now = True,verbose_name='Fecha Migracion')

我不知道是否可以在管理页面中使用权限选择器之类的小部件,以及我需要在表单中使用哪个小部件。

【问题讨论】:

  • 什么是“选择器小部件”?可以加个截图吗?
  • 我搜索并找到它。称为 FilteredSelectMultiple 小部件

标签: django django-forms django-admin django-widget


【解决方案1】:

我明白了

我需要从 admin.widgets 导入小部件,并在表单的定义中添加适当的 css 和 js 文件

from django.contrib.admin.widgets import FilteredSelectMultiple

class fileform(forms.Form):
    archivos = forms.ModelMultipleChoiceField(queryset=Proveedor.objects.all(),required=True,
               widget=FilteredSelectMultiple("Proveedor",is_stacked=False))
 class Media:
        css = {
            'all':('/admin/css/widgets.css',),
        }
        # jsi18n is required by the widget
        js = ('/admin/jsi18n/',)

并且在模板中调用媒体文件是必要的

{{form.media}}

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 2012-06-10
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多