Почему изменение полей в экспорте импорта djnago не работает?
Мне нужно импортировать отношения ManyToMany не по полю id, а по полю number
. Я знаю, что это делается с помощью through_fields, но не совсем понимаю, как это сделать
models.py
class Part(models.Model):
brand = models.CharField('Производитель', max_length=100, blank=True)
number = models.CharField('Артикул', max_length=100, unique=True)
name = models.CharField('Название', max_length=100, blank=True)
description = models.TextField('Комментарий', blank=True, max_length=5000)
analog = models.ManyToManyField('self', through='ContactConnection',blank=True, related_name='AnalogParts')
images = models.FileField('Главное изображение', upload_to = 'parts/', blank=True)
images0 = models.FileField('Дополнительное фото', upload_to = 'parts/', blank=True)
images1 = models.FileField('Дополнительное фото', upload_to = 'parts/', blank=True)
images2 = models.FileField('Дополнительное фото', upload_to = 'parts/', blank=True)
def __str__(self):
return str(self.number)
return self.name
class Meta:
verbose_name = 'Запчасть'
verbose_name_plural = 'Запчасти'
class PartConnection(models.Model):
to_part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='to_parts')
from_part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='from_parts')
Это легко сделать, указав опцию primary_key=True
в самом поле. Скорее всего, вы захотите определить его следующим образом;
number = models.CharField('Артикул', max_length=100, unique=True, primary_key=True)
Теперь вы получите доступ к number
с помощью instance.pk
.
Если вы хотите, чтобы он назывался id, просто добавьте его следующим образом;
id = models.CharField('Артикул', max_length=100, unique=True, primary_key=True)