Найти - Пользователи
Полная версия: Please correct the error below.
Начало » Django » Please correct the error below.
1 2 3
guest01
В админке такая штука выпадает после ввода значений (CharField). Что то теряюсь установить причину. ???
j2a
Код модели и скриншот в студию.
guest01

from django.db import models
from datetime import date

# Create your models here.
class Test(models.Model):
title = models.CharField(“Title”,maxlength=200)
create_date = models.DateField()

def __str__(self):
return“%s, %s” % (self.title, self.create_date)

class Admin():
fields = (
('It is avalaible tests.', {'fields': ('title','create_date')}),
)

TYPE = (('One', ‘One answer’), ('Multi', ‘Multi answer’), ('Text', ‘Text answer’))

class Question(models.Model):
quest = models.CharField(“Question”,core=True, default=“”, maxlength=“500”)
type_quest = models.CharField(“Type”,maxlength=200 , core=True ,radio_admin=True, choices=TYPE, default = ‘One’)
link_test = models.ForeignKey(Test, edit_inline=models.TABULAR)

def __str__(self):
return “%s, %s” % (self.quest, self.type_quest)

class Admin():
fields = (
('Questions:', {'fields': ('quest','type_quest',)}),
)

class Answer(models.Model):
answ = models.CharField(“Answer”,maxlength=200,core=True)
corr = models.BooleanField(“True or False?”,core=True, default=False)
link_quest = models.ForeignKey(Question, edit_inline=models.TABULAR)

def __str__(self):
return self.answ

class Admin():
fields = (
('Answer:', {'fields': ('answ','corr')}),
)
j2a
Скриншот?
guest01
Вроде уже отправлял. Вот еще раз прикрепляю.
guest01
Если скриншота не видно, то на словах. Все в принципе видно из модели. Я пытаюсь через admin создать объект Answer или Question, ввожу ответ и тыкаю checkbox (верно\неверно), нажимаю Save и вот оно сообщение сверху появляется. Нормально создается только Test. Кстати через shell все хорошо работает.
guest01
И еще.. Можно ли сделать, чтобы в админке при создании теста у него ниже не только поля вопросов появлялись, но и поля для ответов на эти вопросы. Трехуровневая система. Или это невозможно?
Maximbo
title = models.CharField("Title",maxlength=200)
Тут советую заменить “Title” на _(“Title”). Дальше будет проще делать локализацию.

quest = models.CharField("Question",core=True, default="", maxlength="500")
type_quest = models.CharField("Type",maxlength=200 , core=True ,radio_admin=True, choices=TYPE, default = 'One')
В type_quest убрать core=True. Достаточно одного поля core, и не типа radio (его не выбрать нельзя).

link_test = models.ForeignKey(Test, edit_inline=models.TABULAR)
Это к стилю кодирования относится. IMHO, лучше заменить link_test на test. Приятнее для дальнейшего чтения.

corr = models.BooleanField("True or False?",core=True, default=False)
Здесь core=True тоже только вредит.

quest01
Кстати через shell все хорошо работает.
Похоже потому, что в shell нет core=True ;)

quest01
И еще.. Можно ли сделать, чтобы в админке при создании теста у него ниже не только поля вопросов появлялись, но и поля для ответов на эти вопросы. Трехуровневая система. Или это невозможно?
Похоже что нет. Админка вообще расчитана на довольно стандартные действия.
guest01
Ок. Может я не совсем понимаю зачем нужна эта опция core. Я то думал она только для того, чтобы админке указать видимость на поля модели потомка в окне предка. понятно выразился?
Maximbo
Не совсем. Если редактор сайта очистит поле с core=True и сохранит объект-родителя, админка автоматически удалит этот прикреплённый объект.

Заметьте, кнопочки “Удалить” для присоединённый объектов не предусмотрено. Так что core=True – единственный вариант удаления мусора в случае отсутствия класса Admin в модели зависимого объекта.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB