2011-12-05 25 views
9

Tôi đang cố gắng tìm ra cách làm cho ứng dụng thử nghiệm Django chơi đẹp với ứng dụng của tôi đặt mỗi người dùng vào tên miền phụ của chính nó. tức là mỗi tài khoản có account1.myapp.com, account2.myapp.com.Django Test Client và Subdomains

Một người dùng có thể là thành viên của nhiều tên miền phụ (mô hình của basecamp tương tự) vì vậy tôi xử lý tên miền phụ yêu cầu đang được phát hành dựa vào phần mềm trung gian. Khi tôi đang viết các bài kiểm tra đơn vị, tôi nhận ra rằng tất cả các yêu cầu được phát hành cho "http: // testserver" mà phần mềm trung gian của tôi sau đó chuyển hướng và 302 tiếp theo không được theo sau vì nó được xác định là yêu cầu bên ngoài.

Bất kỳ ai biết cách bật tính năng này với ứng dụng khách thử nghiệm? Tôi hiện đang hack một chút trong django để kích hoạt nó.

+0

Tôi không nghĩ rằng khách hàng thử nghiệm có bất kỳ hỗ trợ nào cho việc này. Tôi chạy vào cùng một vấn đề kể từ khi tôi cần phải thực hiện yêu cầu cho các tên miền phụ khác nhau, và cũng chỉ cần có để hack một chút trong Django. Đối với tôi, URL khác nhau cho các tên miền phụ khác nhau nên giải pháp là sử dụng urlresolvers tùy chỉnh. – Spike

Trả lời

8

trong các thử nghiệm của bạn, khi sử dụng khách hàng, thêm tham số HTTP_HOST:

response = c.post(reverse('my-url'), data={}, HTTP_HOST='account1.myapp.com') 

trên middleware bạn ngay bây giờ bạn sẽ thấy chủ nhà thay đổi!

Các vấn đề liên quan