Sry его немного запутывает для меня, но на основе того, что я понял, возможно, вы можете объявить все функции в своем классе и использовать slug_treament в качестве параметра, к которому будет вызываться функция, когда вам нужно.
Lets сделайте это немного
YEAR_CAMEL_MONTH=1
YEAR_MONTH=2
SLUG_TREATEMENTS_CHOICES = [
(YEAR_CAMEL_MONTH: 'year_camel_month'),
(YEAR_MONTH: 'year_month'),
]
class DataSourceFamilies(models.Model):
...
slug = models.CharField(max_length=200, blank=False)
slug_treatment = models.IntegerField(choices=SLUG_TREATMENT_CHOICES)
def year_camel_month(self):
... # Your logic
return formated_slug
def year_month(self):
... # Your logic
return formated_slug
def save(self *args **kwargs):
if self.slug_treatment == YEAR_CAMEL_MONTH:
self.slug = self.year_camel_month()
elif self.slug_treatment == YEAR_MONTH:
self.slug = self.year_month()
super(DataSourceFamilies, self).save(*args, **kwargs)
Или вы можете использовать его как метод prorperty вместо сохраняемых данных (так что slug будет оцениваться каждый раз при вызове вашего запроса, поэтому он является динамическим, а не постоянным » Obs .: методы свойств работают как столбцы из вашей базы данных, но не сохраняются, как CAST в базе данных
class DataSourceFamilies(models.Model):
...
slug_treatment = models.IntegerField(choices=SLUG_TREATMENT_CHOICES)
@property
def slug(self):
if self.slug_treatment == YEAR_CAMEL_MONTH:
return slug = self.year_camel_month()
elif self.slug_treatment == YEAR_MONTH:
return slug = self.year_month()
https://docs.djangoproject.com/en /2.0/topics/db/models/
Замечание. Если вы пытаетесь получить код из текста и оценить его в python, я думаю, его можно, но очень опасно, и я не рекомендую его
Да, вы можете. Если вы обеспокоены тем, что импорт модуля несколько раз создает несколько экземпляров объекта списка, когда вы выполняете импорт, например import { a, b } from './file
, ссылка на ./file
указывается только один раз ( Ознакомьтесь с ответом на стекопоток ). ]
Я думаю, что ваш синтаксис немного не соответствует, он должен быть
<Provider value={{ list, updateList }}>