Bỏ qua, tới nội dung chính
Cà Phê & Code Cà Phê & Code
  • Trang chủ
  • Bài viết
    • Chuyên mục
    • Backend
    • Bảo mật
    • Bảo mật ứng dụng web
    • Công cụ
    • Cơ sở dữ liệu
    • DevOps
    • Docker
    • Giải thuật
    • Go
    • Hệ điều hành
    • Hệ thống
    • Java
    • Kiến trúc hệ thống
    • Lập trình
    • Lập trình Go
    • Linux
    • Mang
    • Mạng
    • Message Queue
    • Odoo
    • RabbitMQ
    • Spring
    • Trình biên dịch
    • Vert.x
    • Web

    • Xem tất cả
    • Chuyên mục
    • Sê-ri
    • Thẻ
  • Luyện thi
  • Ghi chú
  • Thiết kế CSDL
  • Thông tin
    • Giới thiệu
    • Liên hệ
Đăng nhập
  1. Trang chủ
  2. Thẻ
  3. orm

#orm

40 bài viết
Odoo 17/09/2026 4 phút

Vì sao dấu '|' trong domain Odoo lại đặt TRƯỚC hai điều kiện chứ không phải ở giữa? Hiểu ký pháp tiền tố là hết rối

Domain nâng cao trong Odoo dùng toán tử tiền tố &, |, ! (ký pháp Ba Lan). Cách đọc, cách lồng OR/NOT, và cách khớp phép tập hợp. Có đếm thật kiểm chứng logic trên db blog19.

#odoo#odoo-19#lap-trinh#developer#domain#orm
22
Odoo 17/09/2026 4 phút

Muốn tổng doanh thu theo trạng thái đơn hàng mà nạp cả nghìn đơn về Python để tự cộng? read_group cộng ngay trong cơ sở dữ liệu

read_group là GROUP BY của Odoo: gom nhóm và tính sum/avg/count/min/max ngay ở tầng SQL, không nạp từng bản ghi. Nền tảng của mọi báo cáo và biểu đồ. Có output thật trên db blog19.

#odoo#bao-cao#odoo-19#lap-trinh#developer#orm
21
Odoo 17/09/2026 4 phút

Xóa một khách hàng mà Odoo báo 'cannot be deleted' — không phải lỗi, mà là khóa ngoại đang bảo vệ dữ liệu của bạn

unlink() xóa bản ghi, nhưng bị chặn khi bản ghi đang được tham chiếu — hai kiểu chặn: UserError của Odoo và ForeignKeyViolation của CSDL. Vì sao nên archive thay vì xóa. Có lỗi thật trên db blog19.

#odoo#unlink#odoo-19#lap-trinh#developer#orm
22
Odoo 17/09/2026 4 phút

Nhân bản một đơn hàng mà số đơn vẫn là S00015 thì loạn ngay — copy=False chính là thứ giữ mỗi bản một số riêng

copy() nhân bản một bản ghi trong Odoo: tự thêm (copy) vào tên, nhận default để ghi đè, và tôn trọng copy=False trên từng trường. Có output thật nhân bản partner và sale.order trên db blog19.

#odoo#odoo-19#lap-trinh#developer#copy#orm
25
Odoo 17/09/2026 4 phút

Đổi số lượng một dòng hàng, tổng tiền đơn tự nhảy theo mà bạn không gọi hàm nào — phép màu đó tên là @api.depends

Trường computed tự tính giá trị từ trường khác; @api.depends báo Odoo biết khi nào tính lại. Ba quy tắc bắt buộc khi viết, và demo thật tổng đơn hàng tự cập nhật trên db blog19.

#odoo#odoo-19#lap-trinh#developer#computed#orm
22
Odoo 17/09/2026 4 phút

Trường tính toán tìm kiếm và sắp xếp được, trường kia thì báo 'Cannot convert to SQL' — khác biệt chỉ nằm ở store=True

Computed store=True lưu xuống CSDL (tìm/sắp/báo cáo được), không store thì tính mỗi lần đọc. Đánh đổi hiệu năng đọc–ghi và khi nào chọn cái nào. Có bằng chứng cột SQL và lỗi thật trên db blog19.

#odoo#odoo-19#lap-trinh#hieu-nang#developer#orm
23
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 7

Trang 3 / 7 — tổng 40 bài viết

Tìm kiếm
Admin

Nhấp một ngụm cà phê, viết thêm một dòng code

Xem thêm
Chuyên mục
  • Odoo 400
  • Lập trình 296
  • Giải thuật 270
  • Cơ sở dữ liệu 237
  • Lập trình Go 133
  • DevOps 114
  • Java 100
  • Hệ điều hành 90
  • Docker 68
  • Spring 60
  • Go 60
  • Bảo mật 57
  • Linux 54
  • Vert.x 50
  • Mạng 45
  • Trình biên dịch 45
  • RabbitMQ 40
  • Backend 40
  • Message Queue 40
  • Công cụ 30
  • Web 18
  • Hệ thống 12
  • Kiến trúc hệ thống 12
  • Bảo mật ứng dụng web 1
Xem nhiều nhất
Bốn mươi dòng kiểm trước khi bấm nút triển khai — mỗi dòng đến từ một lần đã hỏng 10/08/2026 · 189
900 lần chạy test không bắt được lỗi luôn nằm đó — thêm một dòng sleep, nó lộ ra 100% 05/08/2026 · 154
Cùng một jar, ảnh Docker từ 866 MB xuống 126 MB — và cái bẫy làm ảnh nhỏ nhất in tiếng Việt ra dấu hỏi 06/08/2026 · 131
Integer 127 == 127 cho true, nhưng 128 == 128 cho false — vì sao, và bẫy đó ẩn ở đâu 05/05/2026 · 116
Một dòng println nở ra sáu lệnh, dấu cộng nối chuỗi biến thành invokedynamic — mở file .class ra xem 04/05/2026 · 107
Thẻ phổ biến
#zero-to-hero#do-dac#hieu-nang#odoo#odoo-19#golang#go#postgresql#developer#devops#lap-trinh#sql#java#database#huong-dan#he-dieu-hanh#backend#toi-uu#bao-mat#100-ngay-java#docker#trinh-bien-dich#container#linux#redis#dong-thoi#csdl#docker-compose#spring#kafka#kubernetes#web#giai-thuat#message-queue#giam-sat#mang#van-hanh#vertx#performance#cau-truc-du-lieu#co-so-du-lieu#kien-truc-may-tinh#quan-sat#http#orm#rabbitmq#concurrency#kien-truc#view#ke-toan#owl#index#microservice#observability#grpc#testing#reactive#runtime#cong-cu#kho#monitoring#networking#security#bo-nho#qweb#debug#distributed-systems#git#mat-ma#version-control#api#gc#resilience#website#websocket#caching#crm#data-structures#prometheus#protobuf#rest#serialization#collections#compression#nhan-su#regex#search#thiet-ke#tls#tong-ket#ban-hang#cau-hinh#context#controller#do-tin-cay#elasticsearch#gioi-thieu#interface#probabilistic#shell#algorithms#bao-cao#command-line#compiler#he-thong-lon#json#mua-hang#nen-du-lieu#regular-expression#streaming#system-design#unix#cache#ecommerce#jvm#openssl#owasp#realtime#report#spring-boot#stream#vacuum#bloat#distributed#jpa#metrics#replication#san-xuat#action#checklist#gzip#io#logging#network#planner#retry#spring-security#tcp#test#tracing#architecture#benchmark#chan-doan#du-an#explain#http2#oop#phan-quyen#pprof#encoding#event-bus#generics#goroutine#jmh#join#latency#memory#module#mrp#mvcc#scheduler#ton-kho#transaction#wal#amqp#bloom-filter#email#error#exchange#heap#idempotency#kanban#lien-he#luong-ao#opentelemetry#phan-vung#sharding#spring-amqp#statistics#thanh-toan#backpressure#bat-dong-bo#binary#connection-pool#deadlock#debugging#form#functional#go-loi#load-balancing#map#middleware#nginx#pipeline#profiling#quality#rate-limiting#routing#rpc#spring-mvc#sre#wizard#aes#assets#atomic#automation#backtracking#bat-bien#build#bytecode#cardinality#channel#chatter#closure#cong-no#connection-pooling#consumer#cpu#domain#etcd#histogram#hot-update#https#isolation#jwt#list#log#migration#mutex#namespace#percentile#re2#san-pham#scss#slice#sse#syscall#testcontainers#timeout#trien-khai#tu-dong-hoa#unicode#widget#wire-format#zstd#allocation#assembly#authentication#backoff#backup#bash#bom#cas#chat-luong#circuit-breaker#cqrs#csrf#deploy#dich-vu-khach-hang#dlx#dockerfile#do-tre#ecdsa#entropy#erp#error-handling#escape-analysis#event-driven#event-loop#exception#frontend#grep#group-by#hashing#hash-table#helpdesk#hmac#hoa-don#inheritance#integration-test#interceptor#iterator#jackson#jaeger#javascript#jdbc#kieu-du-lieu#lambda#lock#lock-free#lo-trinh#lua#luu-tru#mat-khau#maven#multiplexing#nha-cung-cap#outbox#pagination#partition#pgbouncer#phe-duyet#portal#pubsub#quan-ly-cong-viec#queue#raft#rang-buoc#recovery#reflect#reflection#secrets#server-action#snippet#socket#status-code#string#tim-kiem#toolchain#tuy-bien#varint#vertx-web#work-mem#x509#xac-thuc#xpath#activity#aead#aggregate#alignment#analytics#analyze#async#auth#autovacuum#awk#bao-gia#bao-tri#barcode#batch#bat-dau#bcrypt#bien-the#big-o#brotli#button#byte#certificate#cgroup#chacha20#cham-cong#checkpoint#chi-phi#chuan-hoa#chung-chi#cluster#codegen#collectors#commit#consensus#consistent-hashing#constant-time#constraint#consumer-group#consumer-lag#copy#cors#count-min-sketch#coverage#cron#cross-compile#crud#csp#cte#da-cong-ty#database-sql#ddl#deadline#default#delete#delivery-semantics#delve#dependency-inversion#devirtualization#dich-thuat#dictionary#dinh-gia-ton-kho#distributed-lock#dns#do-ben#dynamic-programming#embed#event-sourcing#fan-out#fanout#field-widget#fillfactor#full-page-writes#full-text-search#future#fuzzing#giao-dich#giao-dien#giao-hang#goroutine-leak#graph#greedy#ha#handshake#hash#health-check#heartbeat#he-thong#hikaricp#hoat-dong#hooks#hop-dong#hyperloglog#i18n#inlining#inverted-index#ir-cron#itab#java-time#jdk#jfr#jit#jsonb#junit#keep-alive#ke-thua#ket-noi#khoa#lead#lru#luong#many2one#memory-leak#menu#merge#metadata#microservices#model#mtls#nap-du-lieu#ngan-hang#nghi-phep#nhap-du-lieu#optimization#optional#ordering#padding#parallel#partitioning#pattern-matching#pbkdf2#pg_dump#phan-tich#phan-trang#plan9#port#prefetch#prepared-statement#proc#property-based-testing#python#quorum-queue#race-detector#rate-limit#rebase#record#recordset#registry#replica#retention#reverse-proxy#rfc6455#rsa#saga#sampling#sap-xep#scalability#scaling#schema#schema-evolution#sealed#sed#seo#service-discovery#session#signal#singleflight#skip-locked#sliding-window#slog#sort#stack#strace#struct#tai-nguyen#theme#thread#throughput#thue#tich-hop#tieng-viet#time#timezone#timing-attack#toast#token#transientmodel#trigram#ttl#tuyen-dung#type-parameter#unsafe#upload#validation#window-function#worker-pool#wraparound#xay-dung-web#xml#x-sync#xz#zigzag#2fa#abstract-model#access-control#ack#active-ids#actuator#addons#aggregation#alerting#alertmanager#allocator#amazon#analytic#analyzer#anchor#an-toan#aof#api-design#api-key#append#approvals#argon2#assert#at-least-once#attachment#attendances#audit#authorization#autoboxing#autocomplete#automated-action#avro#backlog#backreference#bandwidth#bang-dieu-khien#bang-gia#ban-hang-online#bao-cao-tai-chinh#barrier#batch-insert#bce#bearer-token#benchmem#benchstat#bfs#bidirectional#bigdecimal#bigkey#bigtable#binary-search#binding#bind-mount#bisect#blockingqueue#blog#bm25#bool-query#bounds-check#boxing#branch#brin#broadcast#brute-force#bst#bucket#budget#buffer#build-context#build-tags#bulk#bulkhead#bulk-load#but-toan#bzip2#cache-hit-ratio#cache-line#calendar#cam-bay#cancellation#ca-nhan-hoa#canh-bao#capture-group#cassandra#cay-can-bang#cbc#cbor#cgo#cham-gio#character-class#chart-of-accounts#chat#cherry-pick#chmod#chu-ky-so#chunked#ci#c-interop#classloader#classpath#clean-architecture#client-action#clocks#cloudflare#codec#code-generation#collision#command#command-injection#comparator#comparison#compatibility#compile-time#completablefuture#component#compose#composite#computed#concurrenthashmap#conditional-compilation#config#configuration#conflict#cong-doan#cong-tac#consistency#constructor#contract-testing#con-tro#con-tro-ham#cookie#core-dump#coredump#coroutine#cost#cost-model#cot-moc#crdt#criteria#cross-origin#cryptography#csprng#css#cuckoo-filter#curl#cut#dag#da-hinh#da-ngon-ngu#danh-gia#danh-so#dashboard#data-processing#datetime#dce#ddd#dead-code#dead-letter-queue#decoder#deduplication#default-method#deflate#delegation#delta#demo-data#dependencies#dependency-injection#deployment#deque#detached-head#developer-mode#dev-mode#devtools#dfa#dfs#dia-chi#dialog#dieu-chuyen#dieu-khien#dieu-kien#diffie-hellman#dijkstra#dinh-kem#directive#discord#discuss#disk#display-name#distinct#distributed-transaction#dlv#dockerignore#doi-chieu#doi-sales#doi-soat#do-luong#domain-driven-design#don-hang#don-mua#don-vi-tinh#do-phuc-tap#download#dto#dual-write#du-bao#du-lieu#durability#dynamo#ecb#ecdh#editor#effective-cache-size#effective-io-concurrency#elliptic-curve#email-marketing#embed-fs#employees#encapsulation#entity#enum#env#envelope-encryption#ep-kieu#epoll#equals#errgroup#error-boundary#etag#evacuation#event#eviction#exactly-once#executor#exists#exit-code#expvar#fail-fast#failover#failure-detection#fallback#false-sharing#fault-injection#federation#feed#fencing-token#fetch#ffi#field#file-descriptor#filestore#filter#finalizer#find#flaky#flaky-tests#flatbuffers#flatmap#flyway#forkjoin#form-view#for-update#frame#fsck#full-text#functional-core#functional-options#fuzzy#garbage-collector#gcm#gctrace#geohash#geospatial#getter#get-view#gia#giay-bao-co#gin#gist#gitignore#gitops#gob#godebug#gogc#go-generate#golangci-lint#golden-file#gomaxprocs#gomemlimit#gomock#go-modules#google#goos#gop-du-lieu#go-redis#gorilla#gossafunc#gossip#go-vet#govulncheck#go-work#graalvm#graceful-degradation#graceful-shutdown#gradle#group#groups#grpcurl#gtgt#h3#hàm-bậc-cao#handle#hang-doi#happens-before#haproxy#hashcode#hashicorp#hashmap#hazelcast#header#headers#heavy-hitters#helm#help#hexagonal#hibernate#hmap#hoa-don-dien-tu#hoan-tien#hook#hoot#hot-standby#hsts#html#http3#huffman#huge-pages#idempotence#id-generation#idor#iface#image#image-size#indexing#index-only-scan#inherit#inherits#init#inner-class#instagram#internals#invoicing#iot#iptables#ir-attachment#ir-sequence#isolation-level#isr#iter-pull#iter-seq#jaccard#javac#javap#jitter#jlink#jmm#job-queue#journal#jsonrpc#jstack#kek-dek#key-rotation#keyset#khach-hang#khau-hao#khoa-chinh#khoa-cong-khai#khoa-ngoai#khoa-so#khuyen-mai#kiem-ke#kiem-soat#kiem-thu#kien-hang#kiosk#knowledge#ky-dien-tu#ky-nang#ky-online#lag#lap-lich#lateral#layer#lazy#lazy-load#lazy-queue#leader-election#leak#level#like#linear-search#linker#linkname#linter#list-view#livelock#load-average#load-shedding#load-test#locality#lock-date#locking#log-compaction#logical#logical-replication#logs#long-polling#lookahead#lookaround#lookbehind#lo-serial#lost-update#lucene#lz4#lz77#ma-hoa#mail#mail-activity#mail-mail#mail-template#mail-thread#maintenance#maintenance-work-mem#management#many2many#mapping#mapstructure#match#materialize#mau-bao-gia#mau-email#ma-vach#max-connections#media#memcached#memoization#memory-hard#memory-mapped-file#memory-model#merge-join#mergesort#message#messagepack#message-post#messaging#metaprogramming#method#microbenchmark#minhash#mixin#mmap#mock#mockgen#mocking#mockito#moi-truong#monetary#monorepo#mo-rong#mount#multiline#multi-stage#mutation-testing#nagle#name-search#nang-cap#native-image#nen-file#net-http#netpoller#network-partition#nfa#ngan-sach#nguoi-dung#nhan-hang#nhap-kho#nhat-ky#nhieu-buoc#nio#no-co#noinline#non-root#notification#n-plus-1#numeric#oauth2#oca#offset#oidc#onchange#on-conflict#one2many#operations#or#order#overlayfs#p99#pacing#package#packfile#panic#paperformat#partition-management#partition-pruning#partition-wise-join#password#password-hashing#patch#path-traversal#patterns#payment#pdb#pdf#pecs#perf#persistence#pgbadger#pg_basebackup#pgbench#pg-locks#pgo#pg-repack#pg_restore#pg_rewind#pg-stat-statements#pgstattuple#pg-trgm#phan-bo#phan-tan#phoi-hop#phong-ban#phu-thuoc#pid#pipe#pitr#pivot#plan-cache#plugin#poison-message#poly1305#ports-adapters#post-mortem#preemption#preflight#priority-queue#process#producer#production#projection#promise#promql#properties#props#ps#publication#publisher-confirms#push#pylint#qos#qrcode#quan-he#quantifier#quantile#query-dsl#quic#quicksort#quoting#quyen#quy-trinh#race#random#random-page-cost#range-over-func#range-request#rapid#rdb#read-model#read-replica#rebalance#reconnect#recruitment#recursive#red#redelivery#redirect#red-method#redos#ref#reference#reflog#reindex#related#relevance#reliability#remote-debug#replication-slot#repository#requests#res-company#resource#rest-api#restclient#resume#rfq#ripgrep#rle#rootfs#ro-ri-bo-nho#round-robin#route#router#routes-rules#rss#runbook#run-length-encoding#runqueue#safe-eval#sao-ke#sao-luu#sargable#saturation#scaffold#scale#schedtrace#scheduled#scheduled-action#script#scylladb#sdkman#search-after#secure-coding#security-header#select#selection#semaphore#sendfile#separator#serializable#servlet#set#set-e#sha256#shannon#shard#shared-buffers#shellcheck#shortest-path#shovel#side-channel#sign#simd#sitemap#size-class#sketch#sla#slf4j#slice-header#slices#slots#smart-button#snapshot#snapshot-testing#so-cai#sockjs#so-do-to-chuc#solid#sorting#source-code#span#spring-data#sqlc#sql-injection#ssa#ssd#stackoverflow#stack-trace#staging#stampede#starvation#stash#static-analysis#staticcheck#status#statusbar#stenciling#stop-the-world#storage#streams#stringer#stripe#struct-tag#structured-concurrency#studio#stw#submodule#subquery#subscription#substitution#sudo#su-kien#summary#switch#sync#sync-cond#synchronized#synchronous-commit#sync-map#sync-pool#syscall-js#sysmon#systray#table-driven#tagged#tai-dat-hang#tai-khoan#tail-latency#tai-san#tang-truong#tar#t-call#tcp-keepalive#t-digest#template#test-double#testing-quick#text#text-keyword#text-processing#t-field#t-foreach#thao-tac-hang-loat#the-phan-loai#thiet-ke-api#thiet-lap#threadlocal#thread-pool#thuc-hanh#thue-gtgt#thundering-herd#thymeleaf#tien-te#timeline#time-off#time-wait#tinh-phi#tiny-allocator#tls13#toan-tu#token-bucket#tokenizer#to-khai#top#topic#top-k#topology#totp#tour#toxiproxy#transactioncase#transaction-pooling#transactions#transient-model#tra-truoc#tree#treemap#tricolor#tri-thuc#truncate#tuning#tuyen-duong#twitter#ty-gia#type-assertion#typed-nil#type-erasure#type-inference#type-safety#type-set#type-switch#uber#udp#uintptr#ulimit#ung-dung#union#uniq#unit-test#unlink#unlogged#unsafe-pointer#update#upgrade#upsert#use#use-method#useref#useservice#usestate#utf-8#uuid#ux#vacuum-full#value-object#varargs#verticle#veth#vhost#viet-nam#viettel#visibility-map#volatile#volume#vsz#vulnerability#wait-events#wal-compression#wasi#wasm#webassembly#web-client#webclient#webhook#werkzeug#wire#word-boundary#word-splitting#worker#workers#workspace#work-stealing#worktree#write#write-barrier#write-skew#xac-thuc-hai-lop#xargs#xml-id#xmlrpc#xoay-khoa#xss#x-time#xuat-du-lieu#xuat-kho#yield#zero-copy#zero-trust#zlib
Lưu trữ
  • Tháng 9/2026 1745
  • Tháng 8/2026 197
  • Tháng 7/2026 114
  • Tháng 6/2026 64
  • Tháng 5/2026 30
  • Tháng 11/2025 4
  • Tháng 10/2025 27
  • Tháng 9/2025 30
  • Tháng 8/2025 31
  • Tháng 7/2025 30
Theo dõi blog

Nhận email mỗi khi có bài viết mới. Không quảng cáo, huỷ bất cứ lúc nào.

Hoặc dùng RSS
Cà Phê & Code Cà Phê & Code

Cà Phê & Code là blog dành cho những người yêu công nghệ và lập trình. Nơi chia sẻ kiến thức coding, công cụ hữu ích, xu hướng công nghệ, kinh nghiệm phát triển phần mềm và những câu chuyện phía sau màn hình — tất cả được kể theo cách gần gũi, dễ hiểu, như một cuộc trò chuyện bên tách cà phê.

Liên kết
  • Trang chủ
  • Chuyên mục
  • Thẻ
  • Giới thiệu
  • Liên hệ
Chuyên mục nổi bật
Odoo (400)Lập trình (296)Giải thuật (270)Cơ sở dữ liệu (237)Lập trình Go (133)DevOps (114)Java (100)Hệ điều hành (90)Docker (68)Spring (60)Go (60)Bảo mật (57)Linux (54)Vert.x (50)Mạng (45)Trình biên dịch (45)RabbitMQ (40)Backend (40)Message Queue (40)Công cụ (30)Web (18)Hệ thống (12)Kiến trúc hệ thống (12)Bảo mật ứng dụng web (1)

© 2026 Cà Phê & Code. Bảo lưu mọi quyền.