Пишу тест для студентов колледжа, решил что в django будет удобней. Назрел такой вопрос: Как использовать mptt в административном интерфейсе?
модель должна выглядеть след. образом:
-преподаватель
–ученик
—тест
—-вопрос теста
from mptt.admin import FeinCMSModelAdmin admin.site.register(Category, FeinCMSModelAdmin)
class CategoryAdmin(editor.TreeEditor): list_display = ('title',) admin.site.register(Answers, CategoryAdmin)
class Answers(models.Model): title = models.CharField('ответ', max_length=255) TrueAnswer = models.BooleanField(verbose_name='правильность ответа да/нет') Answer = models.CharField(max_length=100, verbose_name='возможный ответ') parent = models.ForeignKey('SomeQuestion', blank=True, null=True, verbose_name="вопрос", related_name='возможный_ответ') title = models.CharField('Название', max_length=255)
# -*- coding: utf-8 -*- from django.db import models class Answers(models.Model): title = models.CharField('ответ', max_length=255) trueAnswer = models.BooleanField(verbose_name='правильность ответа да/нет') answer = models.CharField(max_length=100, verbose_name='возможный ответ') parent = models.ForeignKey('SomeQuestion', blank=True, null=True, verbose_name="вопрос", related_name='возможный_ответ') title = models.CharField('Название', max_length=255) def __unicode__(self): return self.answer class SomeQuestion(models.Model): question = models.CharField(max_length=100, verbose_name='вопрос') parent = models.ForeignKey('SomeTest', blank=True, null=True, verbose_name="тест", related_name='вопрос') title = models.CharField('Название', max_length=255) def __unicode__(self): return self.question class SomeTest(models.Model): testName = models.CharField(max_length=30, verbose_name='имя теста') quantityQuestion = models.CharField(max_length=30, verbose_name='кол-во вопросов') parent = models.ForeignKey('SomeStudent', blank=True, null=True, verbose_name="студент", related_name='тест') title = models.CharField('Название', max_length=255) def __unicode__(self): return self.testName class SomeStudent(models.Model): firstName = models.CharField(max_length=30, verbose_name='имя') secondName = models.CharField(max_length=30, verbose_name='фамилия') group = models.CharField(max_length=30, verbose_name='группа') user = models.CharField(max_length=30, verbose_name='пользователь') password = models.CharField(max_length=30, verbose_name='пароль') rating = models.CharField(max_length=30, verbose_name='оценка') parent = models.ForeignKey('SomeTeacher', blank=True, null=True, verbose_name="преподаватель", related_name='студент') title = models.CharField('Название', max_length=255) def __unicode__(self): return self.firstName class SomeTeacher(models.Model): firstName = models.CharField(max_length=30, verbose_name='имя') secondName = models.CharField(max_length=30, verbose_name='фамилия') email = models.EmailField(blank=True, verbose_name='e-mail') user = models.CharField(max_length=30, verbose_name='пользователь') password = models.CharField(max_length=30, verbose_name='пароль') title = models.CharField('Название', max_length=255) parent = models.ForeignKey('self', blank=True, null=True, verbose_name="преподаватель", related_name='преподаватель') def __unicode__(self): return self.firstName mptt.register(Answers,) mptt.register(SomeQuestion,) mptt.register(SomeTest,) mptt.register(SomeStudent,) mptt.register(SomeTeacher,)
# -*- coding: utf-8 -*- from django.contrib import admin from feincms.admin import editor from student.models import SomeTest, SomeStudent, SomeQuestion, Answers, SomeTeacher class CategoryAdmin(editor.TreeEditor): list_display = ('title',) admin.site.register(Answers, CategoryAdmin) admin.site.register(SomeQuestion, CategoryAdmin) admin.site.register(SomeTest, CategoryAdmin) admin.site.register(SomeStudent, CategoryAdmin) admin.site.register(SomeTeacher, CategoryAdmin)