Tôi đang tạo đồ đạc cho các quyền trong Django. Tôi có thể tải chúng theo cách cần thiết. Tuy nhiên, câu hỏi của tôi là ... tôi muốn tải một vật cố định cho bảng auth_group_permissions
, tôi cần phải chỉ định group_id
và permission_id
, đồ đạc không may không phải là cách tốt nhất để xử lý việc này. Có cách nào dễ dàng hơn để làm điều này theo chương trình? Để tôi có thể nhận được id
cho các giá trị cụ thể và yêu cầu chúng được điền vào? Việc này thường được thực hiện như thế nào?Đồ đạc Django cho phép
Trả lời
Giải pháp thích hợp là tạo các quyền theo cùng cách thức mà khung công tác thực hiện.
Bạn nên kết nối với tín hiệu post_syncdb
được tích hợp trong mô-đun management.py
hoặc management/__init__.py
và tạo quyền ở đó. Tài liệu nói rằng bất kỳ công việc nào được thực hiện để phản hồi với tín hiệu post_syncdb
sẽ không thực hiện bất kỳ thay đổi cơ sở dữ liệu nào, nhưng bạn cũng nên lưu ý rằng chính khung công tác tạo các quyền để phản hồi tín hiệu này.
Vì vậy, tôi khuyên bạn nên xem management module của ứng dụng django.contrib.auth
để xem cách thực hiện.
Kể từ ít nhất Django> = 1,7, câu trả lời được chấp nhận không còn là câu trả lời đúng do việc giới thiệu "khóa tự nhiên" làm tùy chọn tuần tự hóa.
Bạn có thể đọc thêm về các phím tự nhiên trong Django serialization documentation
Các tài liệu đề cập đến một cách rõ ràng trường hợp sử dụng cho các phím tự nhiên là khi ..
... đối tượng sẽ tự động được tạo ra bởi Django trong cơ sở dữ liệu quá trình đồng bộ hóa, khóa chính của một mối quan hệ nhất định không dễ dự đoán; nó sẽ phụ thuộc vào cách thức và thời điểm di chuyển được thực thi. Điều này đúng cho tất cả các mô hình tự động tạo các đối tượng, đặc biệt là bao gồm quyền, nhóm và người dùng.
Vì vậy, cho câu hỏi cụ thể của bạn, liên quan đến auth_group_permissions
, bạn sẽ đổ vật cố của bạn bằng cách sử dụng cú pháp sau:
python manage.py dumpdata auth --natural-foreign --natural-primary -e auth.Permission
Bảng auth_permissions phải được loại trừ một cách rõ ràng với -e
cờ như bảng đó là dân cư bởi lệnh migrate
và sẽ có dữ liệu trước khi tải đồ đạc.
Lịch thi đấu này sau đó sẽ được tải theo cách tương tự như bất kỳ đồ đạc nào khác
- 1. Di chuyển đồ đạc Django?
- 2. Django - Phím nước ngoài trong Đồ đạc
- 3. tải đồ đạc cho các bài kiểm tra django
- 4. Django, quan hệ chung chung, làm cho đồ đạc
- 5. Đồ đạc Django không chấp nhận YAML?
- 6. Kiểm tra Django FileField sử dụng đồ đạc thử nghiệm
- 7. Đồ đạc trong RSpec
- 8. django - chỉ định cơ sở dữ liệu cho đồ đạc TestCase
- 9. Rails, đồ đạc và default_scope
- 10. android đồ đạc thử nghiệm
- 11. Sử dụng đồ đạc với factory_girl
- 12. Box2d nhiều đồ đạc và định vị
- 13. Đồ đạc Django có tải không đúng thứ tự khi thử nghiệm không?
- 14. Đồ đạc trong lập trình là gì?
- 15. Tải nhiều đồ đạc tại một lần
- 16. Đồ đạc thử nghiệm của Google
- 17. Làm thế nào để ngăn chặn đồ đạc Django xung đột với dữ liệu hiện có
- 18. đồ đạc django (từ dumpdata) không thành công khi thử nghiệm
- 19. Django: Có thể tải đồ đạc với các trường ngày dựa trên ngày hiện tại?
- 20. Cách sắp xếp đồ đạc khi sử dụng pytest
- 21. Đồ đạc tương thích với Mocha hỗ trợ
- 22. Symfony2, Cách tải đồ đạc bằng tùy chọn --fixtures?
- 23. Kiểm tra đơn vị đường ray không tải đồ đạc
- 24. tài liệu Factory Girl + Mongoid nhúng vào đồ đạc
- 25. Làm thế nào và ở đâu py.test tìm đồ đạc
- 26. Đồ đạc không được nạp trong khi thử nghiệm
- 27. Nhà máy/Đồ đạc so với Model.create đơn giản (...)?
- 28. Đồ đạc giáo lý - tham khảo vòng tròn
- 29. Cho phép null bằng khóa ngoài cho người dùng. Django
- 30. Có thể sử dụng đồ đạc từ các ứng dụng khác trong các thử nghiệm của django không?