Size: a a a

Django [ru] #STAY HOME

2019 November 10

Vr

Virgil rs in Django [ru] #STAY HOME
всю голову сломал, выход пока вижу в использовании уникального  идентификатора
источник

MI

Marat Idrísov in Django [ru] #STAY HOME
Как можно применить одну функцию ко всем полям модели?
Типа:
`
for obj in models.Model.objects.all():
    obj.field_a = function(obj.field_a)
    obj.field_b = function(obj.field_b)
`
и т.д.
Наверняка это можно как-то сделать красиво с помощью Djano rest или самой джангой
Хотелось что-то типа queryset.apply(my_function(), fields=['field_a', 'field_b'])
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Подскажите, пожалуйста, с помощью чего можно это этой копипасты в классе модели избавиться?

   def get_absolute_url(self):
       return reverse('post_detail_url', kwargs={'slug': self.slug})

   def get_absolute_url_update(self):
       return reverse('post_update_url', kwargs={'slug': self.slug})

   def get_absolute_url_delete(self):
       return reverse('post_delete_url', kwargs={'slug': self.slug})

Это методы на вызову урла и передачу ему уникального значения, по которому строится адрес, они очень однотипные и это дико раздражает
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Marat Idrísov
Как можно применить одну функцию ко всем полям модели?
Типа:
`
for obj in models.Model.objects.all():
    obj.field_a = function(obj.field_a)
    obj.field_b = function(obj.field_b)
`
и т.д.
Наверняка это можно как-то сделать красиво с помощью Djano rest или самой джангой
Хотелось что-то типа queryset.apply(my_function(), fields=['field_a', 'field_b'])
for obj in models.Model.objects.all():
   for f in ['field_a', 'field_b']:
       setattr( obj, f, function(getattr(obj, f)) )
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Dmi Tgl
Подскажите, пожалуйста, с помощью чего можно это этой копипасты в классе модели избавиться?

   def get_absolute_url(self):
       return reverse('post_detail_url', kwargs={'slug': self.slug})

   def get_absolute_url_update(self):
       return reverse('post_update_url', kwargs={'slug': self.slug})

   def get_absolute_url_delete(self):
       return reverse('post_delete_url', kwargs={'slug': self.slug})

Это методы на вызову урла и передачу ему уникального значения, по которому строится адрес, они очень однотипные и это дико раздражает
и все по slug ?
источник

YB

YEgor Briz in Django [ru] #STAY HOME
Как сделать, чтобы папка static в корневой папке проекта работала?
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Dan Tyan
и все по slug ?
Да, это все обработчики постов
источник

DT

Dan Tyan in Django [ru] #STAY HOME
YEgor Briz
Как сделать, чтобы папка static в корневой папке проекта работала?
прочитать документацию
правильно настроить
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Dan Tyan
и все по slug ?
А это что плохо, что у меня везде одинаковый идентификатор?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Dmi Tgl
Да, это все обработчики постов
нет просто узнаю воодные
источник

DT

Dan Tyan in Django [ru] #STAY HOME
нууу как вариант вынести кудато в миксин
и имена url передавать как свойство
источник

MI

Marat Idrísov in Django [ru] #STAY HOME
Dan Tyan
for obj in models.Model.objects.all():
   for f in ['field_a', 'field_b']:
       setattr( obj, f, function(getattr(obj, f)) )
👍
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Dan Tyan
нууу как вариант вынести кудато в миксин
и имена url передавать как свойство
А как понять передавать имена как свойства? Я сначала подумал, что сделать переменную класса url_name, но что-то это не очень
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dmi Tgl
А как понять передавать имена как свойства? Я сначала подумал, что сделать переменную класса url_name, но что-то это не очень
а может цикл в цикле - это "не очень" ?

@dantyan имел ввиду подобный код:
class MyMixin(object):
 def get_absolute_url(self):
       return reverse(self.post_detail_url, kwargs={'slug': self.slug})

   def get_absolute_url_update(self):
       return reverse(self.post_update_url, kwargs={'slug': self.slug})

   def get_absolute_url_delete(self):
       return reverse(self.post_delete_url, kwargs={'slug': self.slug})


class MyView(MyMixin, View):
   post_detail_url = 'post_detail_url'
   post_update_url = 'post_update_url'
   post_delete_url = 'post_delete_url'
   ...
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
наследуй миксин в нужных вьюхах
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Окей, это имеет смысл
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Я первоначально более глупо это себе представил
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Спасибо за подсказку
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Artem Gubatenko
а может цикл в цикле - это "не очень" ?

@dantyan имел ввиду подобный код:
class MyMixin(object):
 def get_absolute_url(self):
       return reverse(self.post_detail_url, kwargs={'slug': self.slug})

   def get_absolute_url_update(self):
       return reverse(self.post_update_url, kwargs={'slug': self.slug})

   def get_absolute_url_delete(self):
       return reverse(self.post_delete_url, kwargs={'slug': self.slug})


class MyView(MyMixin, View):
   post_detail_url = 'post_detail_url'
   post_update_url = 'post_update_url'
   post_delete_url = 'post_delete_url'
   ...
в чате уже появились мои толкователи =)
спасибо за пример

я чот отвлекся
источник

DT

Dmi Tgl in Django [ru] #STAY HOME
Artem Gubatenko
а может цикл в цикле - это "не очень" ?

@dantyan имел ввиду подобный код:
class MyMixin(object):
 def get_absolute_url(self):
       return reverse(self.post_detail_url, kwargs={'slug': self.slug})

   def get_absolute_url_update(self):
       return reverse(self.post_update_url, kwargs={'slug': self.slug})

   def get_absolute_url_delete(self):
       return reverse(self.post_delete_url, kwargs={'slug': self.slug})


class MyView(MyMixin, View):
   post_detail_url = 'post_detail_url'
   post_update_url = 'post_update_url'
   post_delete_url = 'post_delete_url'
   ...
Кстати, а почему бы не сделать наследование таким образом

class MyView(MyMixin):

class MyMixin(object, View):

По функционалу же одно и то же
источник