Làm cách nào để có được tất cả tên bảng trong ứng dụng Django?Nhận tất cả tên bảng trong ứng dụng Django
tôi sử dụng đoạn mã sau nhưng nó không nhận được các bảng được tạo ra bởi ManyToManyField
from django.db.models import get_app, get_models
app = get_app(app_name)
for model in get_models(app):
print model._meta.db_table
Đã chỉnh sửa để bao gồm cơ chế chỉ nhận các mẫu ứng dụng đã cài đặt. Tôi thực sự khuyên bạn nên xem mã lệnh syncdb. – cethegeek
Câu trả lời này liệt kê tất cả các bảng mà django của tôi đã từng sử dụng, bao gồm cả những bảng được tạo bởi các ứng dụng đã từng có trong INSTALLED_APPS nhưng không còn nữa. Có cách nào để tìm ra những cái hiện có liên quan không? – GreenAsJade
Để tham khảo trong tương lai: https://stackoverflow.com/a/31184258/1937033 Từ Django 1.7 trên, bạn có thể sử dụng mã này, ví dụ trong admin.py của bạn để đăng ký tất cả các mô hình: 'từ django.apps ứng dụng nhập từ django.contrib nhập khẩu quản trị từ django.contrib.admin.sites nhập AlreadyRegistered app_models = apps.get_app_config get_models() cho mô hình trong app_models ('my_app'): thử:. admin.site.register (model) except AlreadyRegistered: pass' – ThePhi