Tôi đang thử nghiệm đơn đăng ký của mình và tôi đang gặp sự cố và tôi không chắc chắn lý do. Tôi đang tải đồ đạc cho các bài kiểm tra của tôi và đồ đạc có các phím nước ngoài dựa vào nhau. Chúng phải được tải theo một thứ tự nhất định hoặc nó sẽ không hoạt động.Đồ đạc Django có tải không đúng thứ tự khi thử nghiệm không?
Các đồ đạc Tôi tải là:
["test_company_data", "test_rate_index", 'test_rate_description']
Công ty dữ liệu là một trong những đầu tiên. test_rate_index có khóa ngoại cho công ty và test_rate_description có khóa ngoài cho mô hình được khai báo trong test_rate_index. (như là một thử nghiệm khác nhau, khác nhau cần đồ đạc khác nhau đó là lý do tại sao tôi không chỉ đẩy tất cả mọi thứ trong một)
Nếu tôi sử dụng quy trình chuẩn của django để kiểm tra tải, các thử nghiệm không tải theo thứ tự thích hợp.
class TestPackages(test.TestCase): fixtures = ["test_company_data", "test_rate_index", "test_rate_description",]
Tôi nhận được thông báo
DoesNotExist: RateDescription matching query does not exist.
Nhưng nếu tôi đảo ngược thứ tự của đồ đạc của tôi (mà làm cho không có ý nghĩa) nó hoạt động:
fixtures = ["test_rate_description", "test_company_data", "test_rate_index",]
Django's documentation khẳng định rằng đồ đạc tải theo thứ tự chúng được tuyên bố, nhưng điều này dường như không đúng.
Là một workaround, thay vì sử dụng django của
call_command('loaddata', *fixtures, **{ 'verbosity': 0, 'commit': False, 'database': 'default' })
Tôi đang sử dụng một chức năng khác nhau trong phương pháp thiết lập mà tải đồ đạc cùng một lúc.
def load_fixtures(fixtures): for fixture in fixtures: call_command('loaddata', fixture, **{ 'verbosity': 0, 'commit': False, 'database': 'default' })
Có điều gì đó tôi đang làm không chính xác hoặc không hiểu rằng nguyên nhân khiến đồ đạc của tôi không được tải đúng thứ tự khi cố gắng sử dụng phương pháp chuẩn?
bạn có thể đăng các mô hình từ đồ đạc của mình như thế nào không? –