На самом деле процесс не так сложен и долог, как кажется на первый взгляд. Ну описал ты модель, Она правильная и логичная, и пора бы в базу что то закинуть для теста, и тут …
А в админке пусто. Вернее не пусто, а только управление пользователями, группами и больше ничего.
Поиски в интернете сразу намекают на то, что если ты новичок, то ты попал …:)
Вот как раз для таких новичков этот небольшой скрипт, который основываясь на данные из файла model.py создаст новый файл admin.py, который можно будет (немног подправив по своему вкусу) пользоватся небольшой частью перлестей админки.
Для корректной работы модель должна смотреться так:
class odin(models.Model): name = ............. (Пустая строка) class dva(models.Model): name = .........
смысл в том, что классы разделены пустыми строками
Сам код ниже … Файл еще ниже …
import sys
models = []
fields = []
if len(sys.argv) < = 2:
print "Run me: generate_admin.py "
exit()
adminfile = file(sys.argv[2], 'a')
adminfile.write(
"# -*-coding:utf-8 -*-\nfrom django.contrib import admin\n\nfrom " + sys.argv[1] + ".models import *\n\n")
switcher = False
with open('models.py') as readmodel:
for line in readmodel:
parseline = line.split(" ")
#If found class - forget about fields
if parseline[0] == 'class':
switcher = True
classname = parseline[1].split("(")
adminfile.write(parseline[0] + " admin" + classname[0] + "(admin.ModelAdmin):\n")
models.append(classname[0])
if switcher:
fieldname = line.strip().split("=")[0].strip()
fields.append(fieldname)
if len(line) < = 1 and switcher == True:
switcher = False
fields.remove(fields[0])
fields.remove('')
fieldsformed = ''.join('"%s",' % fields).replace('",', '').replace('"', '')
adminfile.write("\tlist_filter = " + fieldsformed + "\n")
adminfile.write("\tsearch_fields = " + fieldsformed + "\n")
adminfile.write("\tlist_display = " + fieldsformed + "\n")
fields = []
adminfile.write("\n\n")
for classs in models:
adminfile.write("admin.site.register(" + classs + ", admin" + classs + ")\n")
adminfile.close()
1) Скачать архив с файлом
2) Поместить разархивированный файл в папку, где находится models.py
3) Запустить так: generate_admin.py [Имя апликейшена] [Имя файла]