Mysql
 sql >> база данни >  >> RDS >> Mysql

Мога ли да използвам Django F() обекти с конкатенация на низове?

Имах подобен проблем; по принцип исках да свържа две полета, за да получа пълното име на потребител. Реших го по този начин (но трябва да кажа, че използвах Postgres):

from django.db.models.functions import Concat
from django.db.models import F, Value, CharField

AnyModel.objects.filter(**kwargs).annotate(full_name=Concat(F('model__user_first_name'), Value(' '), F('model__user_last_name'), output_field=CharField()))

където, F('...') оценява аргумента си като заявка, така че можете да заявите поле на самия модел или да обхващате модели, както бихте направили във filter/get, докато Value('...') оценява аргумента си буквално (в моя случай имах нужда от интервал между first_name и last_name ) и output_field=... определя типа на анотираното поле (исках да бъда CharField ).За повече информация можете да прочетете документите на Django за Конкат

Надявам се, че ще бъде полезно за някой там. Наздраве



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_MERGE_PATCH() срещу JSON_MERGE_PRESERVE() в MySQL:Каква е разликата?

  2. Как да конвертирам времеви отпечатък в дата и час в MySQL?

  3. Как да поправя таблица на InnoDB?

  4. Как да получите списък с дати между две дати в заявката за избор на mysql

  5. php категория, дърво на подкатегории