2015-12-15 2 views
1

У меня есть декоратор, определенный в пользователях/views.py, и я хочу использовать то же самое в профиле/views.py в ДжангоВызов декоратора из другой точки зрения

функции декоратора пользователей/views.py

def is_active_consult(f): 
    def wrap(request, *args, **kwargs): 
     try: 
      usrid = request.session['id'] 
      user = CustomUser.objects.get(id=usrid) 
      usercons = Userconsultation.objects.get(doctor=user.doctor,status='InProgress') 
     except ObjectDoesNotExist: 
      usercons = '' 

     if usercons: 
      url = '/encounter_notes/'+str(usercons.userconsultationid) 
      return HttpResponseRedirect(url) 
     else: 
      return f(request, *args, **kwargs) 

    return wrap 

Когда я пытаюсь импортировать как

from users.views import is_active_consult 

Это дает ошибку импорта "не может импортировать имя is_active_consult"

Правильно ли определить декоратор в представлении, если нет, куда его поместить, и на данный момент, как я могу исправить проблему.

С уважением

+3

Не могли бы вы отправить трассировку, полученную с ошибкой? Может быть, у вас там какой-то контур импорта, но это всего лишь дикая догадка. Однако, кроме этого, это должно быть совершенно справедливо. В любом случае, лично я предпочитаю определять декораторов в модуле под названием «декораторы» в своих приложениях Django, но это только вопрос вкуса. – koniiiik

+0

Где именно вы пытаетесь импортировать это? –

+0

Мое лучшее предположение, что ваша структура пакета настроена неправильно ... –

ответ

1

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

1) Удалось ли импортировать что-либо из пользователей/views.py в profile/views.py?

2) Можете ли вы вставить свою структуру проекта? (# ls -R)

+1

Привет, Saksow, я поставил общий модуль декоратора и исправил проблему на данный момент. Также мне удалось легко импортировать некоторые другие методы. Так что не уверен. Но я пошел дальше, как я упоминал, потому что это, кажется, правильный путь, так или иначе. Спасибо за помощь. –

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