我們正在做一個使用django框架和MySQL數據庫的項目。我想在模型中使用MySQL中數組的表示方式
CommaSeparatedIntegerField。
如:
class MyModel(models.Model):
values = CommaSeparatedIntegerField(max_length = 200)
這將如何在MySQL來表示?
我們正在做一個使用django框架和MySQL數據庫的項目。我想在模型中使用MySQL中數組的表示方式
CommaSeparatedIntegerField。
如:
class MyModel(models.Model):
values = CommaSeparatedIntegerField(max_length = 200)
這將如何在MySQL來表示?
MySQL中沒有數組。如果將數組存儲爲逗號分隔的字符串,那麼在選擇,修改數據和優化時會遇到問題。
所以,我建議你將項目存儲在表格的行中。
我不得不做這樣一段時間回來的東西,我所做的就是用這裏提出的方式。
http://justcramer.com/2008/08/08/custom-fields-in-django/
from django.db import models
class SeparatedValuesField(models.TextField):
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwargs):
self.token = kwargs.pop('token', ',')
super(SeparatedValuesField, self).__init__(*args, **kwargs)
def to_python(self, value):
if not value: return
if isinstance(value, list):
return value
return value.split(self.token)
def get_db_prep_value(self, value):
if not value: return
assert(isinstance(value, list) or isinstance(value, tuple))
return self.token.join([unicode(s) for s in value])
def value_to_string(self, obj):
value = self._get_val_from_obj(obj)
return self.get_db_prep_value(value)
奧萊特感謝的人! – Alok