在django模型中设置默认排序规则设置

时间:2014-05-28 06:39:22

标签: python django

Django documentation表示默认排序规则为“utf8”,但事实并非如此。每次我运行syncdb来创建新表时,所有字符字段的默认排序规则都是'latin1_swedish_ci'。

同样的文件也说

  

Django没有提供在模型定义上设置它的方法。

有没有其他方法可以强制django的syncdb使用特定的字符串排序规则?

1 个答案:

答案 0 :(得分:0)

通常(更改字符集和排序规则)可以使用迁移,例如:

# -*- coding: utf-8 -*-
# Generated by Django 1.11.10
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('some_model', 'A_previous_migration'),
    ]

    operations = [
        migrations.RunSQL('ALTER TABLE some_table CHANGE column_name column_name VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;'),
    ]

除非您描述的行为很怪异,所以也许有更奇妙的方法可以解决您的特定问题。