2015-04-03 17 views
16

MongoEngine ile Flask-Admin kullanarak basit bir çözüm bulamadığım bir sorunum var. ExerciseResourceContent adında bir Belge sınıfım var. için iki sınıfta sınıflandırma yapılabilir MongoEngine'in DynamicEmbeddedDocument'i Flask-Admin'te İşleniyor

class ExerciseQuestion(db.DynamicEmbeddedDocument): 
    """ 
    Generic collection, every question type will inherit from this. 
    Subclasses should override method "without_correct_answer" in order to define the version sent to clients. 
    Subclasses of questions depending on presentation parameters should also override method "with_computed_correct_answer". 
    """ 

    _id = db.ObjectIdField(default=ObjectId) 

    ## Question text 
    question_text = db.StringField(required=True) 

    ## Correct answer (field type depends on question type) 
    correct_answer = db.DynamicField() 

(daha:

class ExerciseResourceContent(ResourceContent): 
    """An exercise with a list of questions.""" 

    ## Embedded list of questions 
    questions = db.ListField(db.EmbeddedDocumentField(ExerciseQuestion)) 

ExerciseQuestion belge aslında bir DynamicEmbeddedDocument geçerli: O denilen EmbeddedDocument bir ListFieldExerciseQuestion bir "soru" niteliğine sahiptir gel): MultipleAnswerMCQExerciseQuestion ve UniqueAnswerMCQExerciseQuestion:

class MultipleAnswerMCQExerciseQuestion(ExerciseQuestion): 
    """Multiple choice question with several possible answers.""" 

    ## Propositions 
    propositions = db.ListField(db.EmbeddedDocumentField(MultipleAnswerMCQExerciseQuestionProposition)) 

    ## Correct answer 
    correct_answer = db.ListField(db.ObjectIdField()) 

class UniqueAnswerMCQExerciseQuestion(ExerciseQuestion): 
    """Multiple choice question with one possible answer only.""" 

    ## Propositions 
    propositions = db.ListField(db.EmbeddedDocumentField(UniqueAnswerMCQExerciseQuestionProposition)) 

    ## Correct answer 
    correct_answer = db.ObjectIdField() 

Flask-Admin'i bir ExerciseResourceContent oluşturmak veya düzenlemek için kullandığımda, bir "Soru" metnini düzenleyebileceğim bir "Soru" listesi görüntüler, ancak "Correct_Answer" özniteliğini veya "önermeler" özniteliğini göremiyorum. bende olduğu gibi. Flask-Admin doktora ile uğraştım, ama bu dinamik şeyler (alanlar ya da belgeler) ile ilgili bir sorun gibi görünüyor ve bu dokümanlar hakkında bir şey yok. Yardımlarınız için

Teşekkür

cevap

0
import time 

sentence = "ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU ASK WHAT YOU CAN DO FOR YOUR COUNTRY" 
s = sentence.split() 
another = [0] 
time.sleep(0.5) 
print(sentence) 
    for count, i in enumerate(s): 
    if s.count(i) < 2: 
     another.append(max(another) + 1) 
    else: 
     another.append(s.index(i) +1) 
another.remove(0) 
time.sleep(0.5) 
print(another) 
file = open("N:\(Filedirectory)","w") 
file.write(another) 
file.write(s) 
+1

bu kod may ederken ... i belgelere geçmesi gerektiğini düşünüyorum

#Customized admin views class ExerciseQuestionView(ModelView): # # add customisation code here # class MultipleAnswerMCQExerciseQuestionView(ModelView): # # add customisation code here # class UniqueAnswerMCQExerciseQuestionView(ModelView): # # add customisation code here # if __name__ == '__main__': # Create admin admin = admin.Admin(app, 'Example: MongoEngine') # Add admin views admin.add_view(ExerciseQuestionView(ExerciseQuestion)) admin.add_view(MultipleAnswerMCQExerciseQuestionView(MultipleAnswerMCQExerciseQuestion)) admin.add_view(UniqueAnswerMCQExerciseQuestionView(UniqueAnswerMCQExerciseQuestion)) #... 

Neyse admin alt sınıfını kayıt ... ya da çok uzun burada bekleyen sona erebilir soruyu cevaplayarak, neden ve/veya bu kodun soruyu nasıl cevapladığıyla ilgili ek bağlam sağlayarak uzun vadeli değerini artırır. –

1

sizin modelleri için admin-görünümü özelleştirmek zorunda geliyor bana. Modeller için "kutunun dışında" doğru şekilde gösterilmiyorsa yapmanız gereken bir görevdir.

Durumların çoğunda, görünümleri tamamen yeniden yazmak zorunda değilsiniz. Çoğu durumda, yerleşik görünümleri özelleştirmek için yeterli olacaktır.

Şişeye yönelik herhangi bir geliştirme tecrübem yok, ancak temel olarak ModelView alt sınıfına ihtiyacınız olacak. ve

http://flask-admin.readthedocs.io/en/latest/api/mod_contrib_mongoengine/

İlgili konular