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

Django tùy chỉnh duy nhất cùng nhau ràng buộc

Bạn có thể giải quyết vấn đề này với các chỉ mục indexes on expressions nhưng đây là một cách khác:

class Share( models.Model ):
    sharer = models.ForeignKey(User)
    receiver = models.ForeignKey(User), related_name='receiver')
    key = models.CharField(max_length=64, unique=True)

    def save(self, *args, **kwargs):
        self.key = "{}.{}".format(*sorted([self.sharer_id, self.receiver_id]))
        super(Share, self).save(*args, **kwargs)

Nhưng rõ ràng nó sẽ không hoạt động nếu bạn thay đổi giá trị bằng QuerySet.update phương pháp. Bạn cũng có thể xem django-derm , nó giải quyết vấn đề này bằng trình kích hoạt.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra KHÔNG ĐẦY ĐỦ cho một bản ghi không trả về TRUE khi biến được đặt

  2. Message 28000:không có mục nhập pg_hba.conf cho máy chủ \ xx.xxx.xxx.xxxx \, user \ User, database \ databasename \, SSL tắt

  3. Cách liệt kê tất cả cơ sở dữ liệu bằng PostgreSQL

  4. Truy vấn PostgreSQL - cột không tồn tại

  5. Nhận tổng số hàng sau khi GROUP BY