foreignkey
管理者の変更/追加フォームのリストを中国語ピンインでソートすることができるように[ORDER BY CONVERT (name USING gbk) ASC
]出来ますか?Django、[ORDER BY CONVERT(名前USING gbk)ASC]を使用してクエリを作成する方法
DB:MySQLの、 サンプルクラスはブロー(:utf8_general_ci
テーブルcommoninfoの文字セット)である
class CommonInfo(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name
class Personal(CommonInfo):
first_name = models.CharField(max_length=128,null=True, blank=True, default = None)
last_name = models.CharField(max_length=128,null=True, blank=True, default = None)
class Profile(models.Model):
personal_info = models.ForeignKey(Personal, null=True, blank=True, default = None)
mobile = models.CharField(max_length=32,default='',null=True, blank=True)
IはProfileAdmin 2つのメソッドの下に試みたが、いずれも作品
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "personal_info":
#raw_sql = 'SELECT id as commoninfo_ptr_id, name FROM share_commoninfo ORDER BY CONVERT (name USING gbk) ASC'
#raw_querySet = Personal.objects.raw(raw_sql)
#kwargs["queryset"] = raw_querySet
querySet = Personal.objects.extra(order_by=['CONVERT (name USING gbk)'])
kwargs["queryset"] = querySet
return super(ProfileAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
admin.site.register(models.Profile, ProfileAdmin)
FieldError: Cannot resolve keyword 'CONVERT (name USING gbk)' into field. Choices are: commoninfo_ptr, commoninfo_ptr_id, first_name, id, last_name, name, profile, Check fields/fieldsets/exclude attributes of class ProfileAdmin.
なぜ必要な ' 'CONVERT(名前使用したGBK)''? – doniyor
テーブルの文字セットは、[ORDER BY chinese_data_field]、 を使用して正しい(期待される)注文を得ることができないutf8_general_ciです。中国語ピンインで期待している注文をしているようですが、テーブルをgbkに隠すか、注文フィールド。 – alice