tôi đã viết funcion này trên một utils.py nằm trên direcroty ứng dụng:lỗi nhập khẩu đối với django models.py
from bm.bmApp.models import Client
def get_client(user):
try:
client = Client.objects.get(username=user.username)
except Client.DoesNotExist:
print "User Does not Exist"
return None
else:
return client
def to_safe_uppercase(string):
if string is None:
return ''
return string.upper()
Sau đó, khi tôi sử dụng các chức năng to_safe_uppercase trong hồ sơ models.py tôi, bằng cách nhập nó trong theo cách này:
from bm.bmApp.utils import to_safe_uppercase
tôi đã nhận lỗi python:
from bm.bmApp.utils import to_safe_uppercase
ImportError: cannot import name to_safe_uppercase
tôi có giải pháp cho vấn đề này khi tôi thay đổi t ông nhập tuyên bố cho:
from bm.bmApp.utils import *
Nhưng tôi không thể hiểu tại sao điều này, tại sao khi tôi nhập chức năng cụ thể tôi đã nhận được lỗi?
Điều này không nên xảy ra. Tôi nghi ngờ có cái gì đó khác đang xảy ra. – Marcin
không may, django theo mặc định bắt ImportErrors và thay thế chúng bằng lỗi này. cố gắng vá django, để nó mang lại cho bạn traceback, điều này sẽ chỉ ra vấn đề. Tôi nghi ngờ nhập khẩu cyclic hoặc một cái gì đó như thế. – ch3ka
@ ch3ka vá django không phải là một ý tưởng tuyệt vời ... anh ấy cũng đang nhận được traceback trăn rồi. Ông đã dán một phần của nó trong câu hỏi – Jiaaro