django suit和select2自动完成内联

时间:2015-04-27 09:07:14

标签: python django jquery-select2 django-suit

我遇到了Django-Select2和Django-Suit的严重问题,我试图在管理套装中包含select2的自动完成字段,但是我失败了,问题是添加另一个的链接没有出现在结果管理员表格;请任何帮助都很好。

我的两种形式是:

class EstudianteNominaInlineForm(ModelForm):
    class Meta:
        model = EstudianteNomina

        fields = [
            'becado',
            'pago',
            'nomina',
            ]

        widgets = {
            'pago': EnclosedInput(append='icon-check'),
            }

    becado = EstudiantesNominaAdminSelect(
        label = 'Beneficiario',
        widget = AutoHeavySelect2Widget(select2_options={'width':'220px', 'minimumInputLength': 5})
        )


class NominaAdminForm(forms.ModelForm):
    class Meta:
    model = Nomina

    fields = [
            'tipo',
            'beneficio',
            'carrera_sedes',
            'pago',
            ]

    widgets = {
        'tipo': Select2Widget(select2_options={'width': '300px'}),
        'pago': EnclosedInput(append='icon-pencil'),
    }  

我的admin.py是:

class NominaInline(SortableTabularInline):
    form = EstudianteNominaInlineForm
    model = EstudianteNomina
    extra=1
    sortable = 'becado'
    verbose_name_plural = 'Estudiantes en nomina'

class NominaAdmin(SortableModelAdmin):
form = NominaAdminForm
inlines = (NominaInline,)

def suit_row_attributes(self, obj, request):

    css_class = {
        True: 'success',
        False: 'error',
    }.get(int(obj.activa))
    if css_class:
        return {'class': css_class}

search_fields=['tipo', 'fecha']
list_filter=['tipo', 'fecha']
list_display=['id','get_carrera','Tipo', 'fecha', 'Pago', 'activa']
exclude = ['beneficio','carrera_sedes']
actions = [CerrarNominas, Normal, Especial, GeneraAbonos, GeneraAbonosN, GeneraTarjetas, GeneraAbonosE, GeneraAbonosEN]


def get_carrera(self, obj):
    if  obj.carrera_sedes.all().count() == 0:
        return u'NO EXISTEN CARRERAS ASOCIADAS'
    else:
        carreras =''
        for carrera in obj.carrera_sedes.all():
            carreras += '  {'+str(carrera.carreras.codigo_interno)+' - '+str(carrera.carreras.nombre)+'}  '
        return carreras 
get_carrera.short_description = 'carreras'


def Tipo(self,obj):
    if obj.tipo=='0':
        return "NORMAL"
    else:
        return "ESPECIAL"
Tipo.short_description = 'nominas disponibles'

def Pago(self,obj):
    if obj.pago==None:
        return '400'
    else:
        return obj.pago
Pago.short_description = 'Pago'
admin.site.register(Nomina, NominaAdmin)

这是结果表单(在表单中找不到添加其他按钮):

0 个答案:

没有答案