Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Django đăng tín hiệu lưu được gọi hai lần mặc dù có uid

Ok vì vậy tôi đã chuyển nhập sang views.py (hoặc models.py và trong khi nó chỉ được nhập một lần, nó đã được gọi hai lần.

Vấn đề là post_save tín hiệu được gọi khi đối tượng được tạo cũng như được lưu. Tôi không biết tại sao nên tôi đã thêm một giải pháp hiện đang hoạt động

created = False

    #Workaround to signal being emitted twice on create and save
    if 'created' in kwargs:
        if kwargs['created']:
            created=True

    #If signal is from object creation, return
    if created:
        return

Chỉnh sửa:

post_save bị gọi hai lần vì tôi đã sử dụng .create(...) tương đương với __init__(...).save() .

Kết luận

dispatch_uid hoạt động hiệu quả và thực hiện nhập đơn lẻ vẫn là một phương pháp hay.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tải lại các biến .env mà không cần khởi động lại máy chủ (Laravel 5, lưu trữ được chia sẻ)

  2. Không thể truy xuất siêu dữ liệu của dự án. Đảm bảo đó là một dự án .NET Core dựa trên MSBuild

  3. Django migrate:không tạo bảng

  4. Làm cách nào để chèn dữ liệu vào bảng Hive (0.13.1)?

  5. Phương ngữ SQL không được định cấu hình (Phpstorm)