Форум сайта python.su
0
Всем привет! Пошарился по форуму и не нашел ответа. Есть следующая модель:
from django.db import models
condition_choices = (
(0, u'Совпадает'),
(1, u'Начинается'),
(2, u'Содержит'),
(3, u'Оканчивается'),
)
class ADPassAssociate (models.Model):
association = models.CharField (max_length = 20, unique=True, verbose_name=u'Имя компа')
condition = models.IntegerField (choices = condition_choices, verbose_name = u'Условие')
0, name1, 0
1, super_name, 1
2, third_name, 2
Офлайн
9
Если я правильно понял что нужно сделать
def func(str):
startswith_conditions = ADPassAssociate.objects.filter(condition=1)
for c in startswith_conditions:
if str.startswith(c.association):
return c.id
endswith_conditions = ADPassAssociate.objects.filter(condition=3)
for c in endswith_conditions:
if str.endswith(c.association):
return c.id
contains_conditions = ADPassAssociate.objects.filter(condition=2)
for c in contains_conditions:
if str.find(c.association) != -1:
return c.id
return -1
Офлайн
0
svasЕсли методами самого Python (а не Django ORM), то да - так и буду. Пока проверю так, если тормозить не будет, то и функцию на SQL писать не буду. Спасибо за ответ.
Если я правильно понял что нужно сделатьdef func(str):
startswith_conditions = ADPassAssociate.objects.filter(condition=1)
for c in startswith_conditions:
if str.startswith(c.association):
return c.id
endswith_conditions = ADPassAssociate.objects.filter(condition=3)
for c in endswith_conditions:
if str.endswith(c.association):
return c.id
contains_conditions = ADPassAssociate.objects.filter(condition=2)
for c in contains_conditions:
if str.find(c.association) != -1:
return c.id
return -1
Офлайн