0

I'm trying to customize my admin panel making some of checkboxes grouped but I'm having trouble with fieldsets. If anyone could help me with it. Thanks in advance.

admin.py

from django.contrib import admin
from django.forms.models import fields_for_model
from dashboard.models import socio, pagamento, treino


class TreinoAdmin(admin.ModelAdmin):
    # fieldsets = (
    #   (None, {'fields': ['socio']}),
    #   ('Armamento', {'fields': ['arma', 'municao']}),
    #   ('Alvos', {
    #       'fields': (
    #           'Galinhas', ['galinha1','galinha2','galinha3','galinha4','galinha5','galinha6','galinha7','galinha8','galinha9','galinha10',],
    #           'Porcos', ['porco1','porco2','porco3','porco4','porco5','porco6','porco7','porco8','porco9','porco10',],
    #           'Perus', ['peru1','peru2','peru3','peru4','peru5','peru6','peru7','peru8','peru9','peru10',],
    #           'Carneiros', ['carneiro1','carneiro2','carneiro3','carneiro4','carneiro5','carneiro6','carneiro7','carneiro8','carneiro9','carneiro10',]
    #           ),
    #       }),
    # )
    #readonly_fields = ("Galinhas", "Porcos","Perus","Carneiros",)
    def __init__(self, *args, **kwargs):
        super(TreinoAdmin, self).__init__(*args, **kwargs)
        todos = set(fields_for_model(models.treino))
        galinhas = ['galinha1','galinha2','galinha3','galinha4','galinha5','galinha6','galinha7','galinha8','galinha9','galinha10',]
        porcos = ['porco1','porco2','porco3','porco4','porco5','porco6','porco7','porco8','porco9','porco10',]
        perus = ['peru1','peru2','peru3','peru4','peru5','peru6','peru7','peru8','peru9','peru10',]
        carneiros = ['carneiro1','carneiro2','carneiro3','carneiro4','carneiro5','carneiro6','carneiro7','carneiro8','carneiro9','carneiro10',]

        alvos = set(galinhas) | set(porcos) | set(perus) | set(carneiros)

        resto = list(todos - alvos)

        self.fieldsets = (
            (None, {
                'fields': todos
            }),
            ('Galinhas', {
                'classes', ['collapse',],
                'fields': galinhas
            }),
            ('Porcos', {
                'classes', ['collapse',],
                'fields': porcos
            }),
            ('Perus', {
                'classes', ['collapse',],
                'fields': perus
            }),
            ('Carneiros', {
                'classes', ['collapse',],
                'fields': carneiros
            }),
        )
        models = models.treino

admin.site.register(socio)
admin.site.register(pagamento)
admin.site.register(models.treino, TreinoAdmin)

models.py

class treino(models.Model):
    # /// treinos do sócio
    socio = models.ForeignKey(socio)
    arma = models.CharField(max_length=30)
    municao = models.CharField(max_length=40)

    # // alvos
    galinha1 = models.BooleanField('Galinha #1')
    galinha2 = models.BooleanField('Galinha #2')
    galinha3 = models.BooleanField('Galinha #3')
    galinha4 = models.BooleanField('Galinha #4')
    galinha5 = models.BooleanField('Galinha #5')

    galinha6 = models.BooleanField('Galinha #6')
    galinha7 = models.BooleanField('Galinha #7')
    galinha8 = models.BooleanField('Galinha #8')
    galinha9 = models.BooleanField('Galinha #9')
    galinha10 = models.BooleanField('Galinha #10')


    porco1 = models.BooleanField('Porco #1')
    porco2 = models.BooleanField('Porco #2')
    porco3 = models.BooleanField('Porco #3')
    porco4 = models.BooleanField('Porco #4')
    porco5 = models.BooleanField('Porco #5')

    porco6 = models.BooleanField('Porco #6')
    porco7 = models.BooleanField('Porco #7')
    porco8 = models.BooleanField('Porco #8')
    porco9 = models.BooleanField('Porco #9')
    porco10 = models.BooleanField('Porco #10')


    peru1 = models.BooleanField('Peru #1')
    peru2 = models.BooleanField('Peru #2')
    peru3 = models.BooleanField('Peru #3')
    peru4 = models.BooleanField('Peru #4')
    peru5 = models.BooleanField('Peru #5')

    peru6 = models.BooleanField('Peru #6')
    peru7 = models.BooleanField('Peru #7')
    peru8 = models.BooleanField('Peru #8')
    peru9 = models.BooleanField('Peru #9')
    peru10 = models.BooleanField('Peru #10')


    carneiro1 = models.BooleanField('Carneiro #1')
    carneiro2 = models.BooleanField('Carneiro #2')
    carneiro3 = models.BooleanField('Carneiro #3')
    carneiro4 = models.BooleanField('Carneiro #4')
    carneiro5 = models.BooleanField('Carneiro #5')

    carneiro6 = models.BooleanField('Carneiro #6')
    carneiro7 = models.BooleanField('Carneiro #7')
    carneiro8 = models.BooleanField('Carneiro #8')
    carneiro9 = models.BooleanField('Carneiro #9')
    carneiro10 = models.BooleanField('Carneiro #10')

As you guys can see(I hope), I'm trying to make these booleanfields displayed in 4 groups with can be collapsed. Please help me with it, I've tryed all :)

Getting this error:

SyntaxError at /admin/
invalid syntax (admin.py, line 38)
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/
Django Version: 1.5.2
Exception Type: SyntaxError
Exception Value:    
invalid syntax (admin.py, line 38)
Exception Location: /usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module, line 35
Python Executable:  /usr/bin/python
Python Version: 2.7.3
Python Path:    
['/home/lucas/Documentos/python/cicuta',
 '/usr/local/lib/python2.7/dist-packages/South-0.8.2-py2.7.egg',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/python2.7/dist-packages/gst-0.10',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
Server time:    Ter, 3 Set 2013 01:51:07 -0300
4

1 回答 1

0

你有一个 SyntaxError .. 我猜 Dictionary 应该是一个错字{key: value}'classes'删除“,”后添加冒号,即

('Galinhas', {
                'classes': ['collapse',],
                'fields': galinhas
            }),
            ('Porcos', {
                'classes': ['collapse',],
                'fields': porcos
            }),
            ('Perus', {
                'classes': ['collapse',],

此外,由于您已导入treino但正在使用models.treino,您也可能会得到NameError

于 2013-09-03T06:03:23.537 回答