PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Django niestandardowe unikalne ograniczenie razem

Prawdopodobnie możesz rozwiązać ten problem za pomocą indexes on expressions postgresql ale oto inny sposób:

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)

Ale to oczywiście nie zadziała, jeśli zmienisz wartości za pomocą QuerySet.update metoda. Możesz także spojrzeć na django-denorm , rozwiązuje to za pomocą wyzwalaczy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jakie jest domyślne hasło do postgreSQL instalowanego przez wersję Gitlab Omibus?

  2. NLlogowanie do połączenia PostgreSQL

  3. Wydajny sposób na pobieranie danych z drugiej bazy danych?

  4. UnknownHostException podczas próby połączenia z heroku-postgres z lokalnego projektu Springboot za pomocą Spring JPA

  5. Jak wypełnić bazę danych postgresql za pomocą Mrjob i Hadoop