Odpowiedź:
- 1. Dla pola lub pól primary_key
- 2. W przypadku parametru 'unique=True'
- 3. Dla pola ForeignKey()
# 4. Dla pól z opcją unique_together lub constraints
class Membership(models.Model):
person = models.ForeignKey(User, on_delete=models.CASCADE)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
class Meta:
unique_together = ('person', 'group')
# 5. Dla funkcjonalności 'unique_for_date'
class Post(models.Model):
slug = models.SlugField(unique_for_date="publish")
publish = models.DateTimeField()
# 6. Dla kluczy obcych w tabelach pośrednich:
class Book(models.Model):
authors = models.ManyToManyField(Author)
# Django tworzy automatycznie tabelę pośrednią book_authors i dodaje indeksy na kolumnach book_id oraz author_id.