2011-10-28 4 views
0

У меня есть файл модели.нужно было бы импортировать один и тот же файл дважды?

Из моих взглядов файл я импортировать модели файл

Из моих просмотров файл я изменить файл модели в той или иной функции, добавив атрибут.

Если еще в одной и той же функции, я тогда хотел бы получить доступ к новым моделям атрибут, я бы тогда придется повторно импортировать модели файл

Вот что им пытаются достичь

В моем файле модели У меня есть куча атрибутов, которые измеряют и оценивают способность людей поднимать тяжести. Есть 10 различных упражнений, которые они могут измерять и оценивать. Я хочу, чтобы они смешивали упражнения и рейтинги. С 10 упражнениями это делает сотни возможностей ранжирования, чего я не хочу кодировать вручную. И это только для раздела веса.

Если кто-то собирается узнать свой ранг любым из сотен возможных способов, я хочу, чтобы код проверял, есть ли атрибут ранжирования. Если нет, я хочу добавить его в базу данных mysql, а также файл модели.

for i in request.GET: 
     a += i 
     a += '+' 
     b += i 
     b += '_' 

a = a.strip("+") 
b = b.strip("_") 
c = b + '_rank' 

if c not in WeightsProfile.__doc__: 


     shutil.move("models.py", "models.py"+"~") 
     original = open("models.py"+"~", 'r') 
     new = open("models.py", 'w') 

     for line in original: 
      new.write(line) 
      if "Snatch_rank = models.IntegerField(max_length=4, default=0)" in line: 
       new.write(" %s = models.IntegerField(max_length=30, default='0')" % c + '\n') 

     new.close() 
     original.close() 

     conn = mdb.connect('localhost', 'jamie', 'wiser9999', 'website') 
     cursor = conn.cursor() 
     cursor.execute("alter table mysite_weightsprofile add column %s integer not null; SET @rank=0; UPDATE mysite_weightsprofile SET %s = @rank:[email protected]+1 order by %s DESC;" % (c, c, a)) 
     cursor.close() 
     conn.close() 
    else: 
     pass 

Это плохая практика

ответ

1

Вы не изменяя «модели файла», ваши изменения представления в памяти модели - по существу обезьянья заплат свой собственный код. Итак, нет, вам не нужно повторно импортировать что-либо - на самом деле, если бы вы могли, вы просто перезаписали свои изменения, но это плохо, плохой дизайн. Возможно, если вы объясните больше о том, чего вы пытаетесь достичь, кто-то может сказать вам, как лучше это сделать.

Смежные вопросы