Dường như PostgreSQL 8.4 và Ubuntu 10.04 không thể xử lý cách cập nhật để sắp xếp W và V cho bảng chữ cái Thụy Điển. Có nghĩa là, nó vẫn ra lệnh cho họ như cùng một lá thư như thế này (định nghĩa cũ để đặt hàng Thụy Điển):Sắp xếp danh sách các bộ dữ liệu xem xét địa phương (đặt hàng Thụy Điển)
- Wa
- Vb
- Wc
- VD
nó phải được (định nghĩa mới cho đặt hàng Thụy Điển):
- Vb
- VD
- Wa
- Wc
tôi cần phải đặt hàng này một cách chính xác cho một trang web Python/Django Tôi đang xây dựng. Tôi đã thử nhiều cách khác nhau để chỉ cần sắp xếp một danh sách các bộ dữ liệu được tạo từ một Django QuerySet bằng cách sử dụng * values_list *. Nhưng vì đó là tiếng Thụy Điển nên các chữ cái å, ä và ö cần được đặt đúng. Bây giờ tôi có một hoặc bên kia đường cả hai không phải cả hai ..
list_of_tuples = [(u'Wa', 1), (u'Vb',2), (u'Wc',3), (u'Vd',4), (u'Öa',5), (u'äa',6), (u'Åa',7)]
print '########## Ordering One ##############'
ordered_list_one = sorted(list_of_tuples, key=lambda t: tuple(t[0].lower()))
for item in ordered_list_one:
print item[0]
print '########## Ordering Two ##############'
locale.setlocale(locale.LC_ALL, "sv_SE.utf8")
list_of_names = [u'Wa', u'Vb', u'Wc', u'Vd', u'Öa', u'äa', u'Åa']
ordered_list_two = sorted(list_of_names, cmp=locale.strcoll)
for item in ordered_list_two:
print item
Các ví dụ cho:
########## Ordering One ##############
Vb
Vd
Wa
Wc
äa
Åa
Öa
########## Ordering Two ##############
Wa
Vb
Wc
Vd
Åa
äa
Öa
Bây giờ, những gì tôi muốn là một sự kết hợp của những cái mà cả V/W và å , ä, ö đặt hàng là chính xác. Để được chính xác hơn. Tôi muốn Đặt hàng một để tôn trọng ngôn ngữ. Bởi sau đó bằng cách sử dụng mục thứ hai (đối tượng id) trong mỗi tuple tôi có thể lấy đối tượng chính xác trong Django.
Tôi bắt đầu nghi ngờ rằng điều này sẽ có thể? Sẽ nâng cấp PostgreSQL lên phiên bản mới hơn xử lý collations tốt hơn và sau đó sử dụng SQL thô trong Django có thể?
Tôi nghĩ rằng Postgres 8.4 và Ubuntu 10.04 LTS sẽ ổn.Miền của bạn được đặt thành cụm sao nào? Bạn có thể nói điều này bằng lệnh "show lc_collate;" –
Tôi nên đề cập rằng miền địa phương là chính xác cho cụm (sv_SE). Tôi đã phải thay đổi điều này trước đó để có được å, ä và ö để được sắp xếp một cách chính xác. – daru