Django Admin показывает несколько экземпляров для одного и того же первичного ключа
Я борюсь со странной проблемой в Django (4.0.7), когда несколько экземпляров для одного и того же первичного ключа отображаются в Django Admin, а также при выполнении запросов. Я отобразил первичные ключи, чтобы было понятно, что они идентичны:
Два задействованных класса - Collection
и Card
, где каждая карточка имеет внешний ключ к коллекции.
class Collection(models.Model):
FREQUENCY_CHOICES = [('never', 'Never'), ('less', 'Less'), ('normal', 'Normal'), ('more', 'More')]
title = models.CharField(max_length=200)
author = models.CharField(max_length=200, blank=True, null=True)
user = models.ForeignKey(User, related_name='collections', on_delete=models.CASCADE)
type = models.CharField(max_length=10, choices=(('books', 'Books'), ('tweets', 'Tweets'), ('articles', 'Articles'), ('podcasts', 'Podcasts')))
custom_id = models.CharField(max_length=200, blank=True, null=True) # e.g. raindropref, amazon book id, etc.
url = models.URLField(blank=True, null=True)
tags = TaggableManager(blank=True)
connection = models.ForeignKey(Connection, related_name='collections', null=True, blank=True, on_delete=models.SET_NULL)
frequency = models.CharField(max_length=10, choices=FREQUENCY_CHOICES, default='normal')
class Card(models.Model):
text = models.TextField()
collection = models.ForeignKey(Collection, related_name='cards', on_delete=models.CASCADE, blank=True)
custom_id = models.CharField(max_length=200, null=True, blank=True)
author = models.CharField(max_length=200, null=True, blank=True)
url = models.URLField(blank=True, null=True)
created_at = models.DateTimeField(default=timezone.now)
favorite = models.BooleanField(default=False)
tags = TaggableManager(blank=True)
notes = models.TextField(blank=True, null=True)
location = models.IntegerField(blank=True, null=True)
Я не могу понять, в чем может быть проблема. Я уже настроил базу данных с нуля, но безуспешно.
Вот пример запроса к базе данных:
for c in Collection.objects.all():
print(c.pk, c.id)
12 12
12 12
12 12
13 13