Какой тип поля выбрать для хранения списка идентификаторов массива в моделях Django? - PullRequest
0 голосов
/ 17 мая 2011

Какой тип поля выбрать для хранения списка идентификаторов в моделях django?Хочешь легко проверить существование?

Ответы [ 3 ]

1 голос
/ 17 мая 2011

Я сообщу, что думаю, что вы, скорее всего, неправильно подходите к своей базовой проблеме.Тем не менее, вот код для настраиваемого поля, которое будет эффективно хранить набор идентификаторов:

class SetField(models.TextField):
    __metaclass__ = models.SubfieldBase

    def get_prep_value(self, value):
        if value is None:
            return json.dumps([])
        return json.dumps(list(value))

    def to_python(self, value):
        if isinstance(value, set):
            return value
        if not value:
            return set()
        return set(json.loads(value))
0 голосов
/ 17 мая 2011

Сохраните его как IntegerField (primary_key = true) в models.py, а когда вы хотите проверить наличие определенных строк, параметр silent1mezzo try:

0 голосов
/ 17 мая 2011

Вот один из способов сделать это.Хотя есть много других способов.

ids = ['1', '2', '3',]

for id in ids:
    try:
        Model.objects.get(pk=id)
    except Model.DoesNotExist:
        print "ID: %s doesn't exist" % id
...