Как извлечь значения полей из объектов модели

#django #django-models

#django #django-модели

Вопрос:

У меня есть следующая модель, которая содержит 2 поля списка:

 class Cimex_Search(models.Model):
    search_engine = ArrayField(models.TextField(blank=True),blank=True,null=True,default=list)
    web_technology = ArrayField(models.TextField(blank=True),blank=True,null=True,default=list)

    def __str__(self):
        return "default"
  

Теперь у меня есть следующая функция в views.py:

 def cimex_search_searcher(request):
        default_table = Cimex_Search.objects.get(id=1)
        field_type = request.GET.get('fieldtype')
        print(default_table.field_type) ###! NEED HELP HERE
  
  • Как передать fieldtype значение в Model Object ?
  • Я хотел бы получить список объектов модели на основе fieldtype значения входного параметра.

Каков наилучший способ решения этой проблемы?

Ответ №1:

Вы можете попробовать использовать getattr передачу модели и поля, поэтому для вашего варианта использования это было бы:

 def cimex_search_searcher(request):
    default_table = Cimex_Search.objects.get(id=1)
    field_type = request.GET.get('fieldtype')
    print(getattr(default_table, field_type)) 
  

Комментарии:

1. Что, если мне нужно обновить field_type значение поля? что-то вроде этого ex: field_value = [«google.com «,»facebook.com «]; field_value.save()` , Как это сделать?

2. В этом случае вы можете использовать setattr , это работает таким же образом. setattr(object, name, value)