我正在尝试自定义管理面板,将一些复选框分组,但我遇到了字段集问题。如果有人可以帮助我。 提前谢谢。
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')
你们可以看到(我希望),我试图让这些booleanfields显示在4组中,可以折叠。 请帮助我,我已经尝试了所有:)
出现此错误:
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
答案 0 :(得分:0)
你有一个SyntaxError ..一个拼写错误我猜词典应该是{key: value}
。在'classes'
删除','即
('Galinhas', {
'classes': ['collapse',],
'fields': galinhas
}),
('Porcos', {
'classes': ['collapse',],
'fields': porcos
}),
('Perus', {
'classes': ['collapse',],
此外,由于您已导入treino
但正在使用models.treino
,因此您也可能获得NameError
。