#django #django-models
Вопрос:
Как отобразить элемент категории 1 в категорию 2 на основе UID
модели Django?
Category_1: UID Item 1 A 1 B 2 C 2 D
ожидаемый результат:
Category_2: UID Category_1 Cateogry_1_Des 1 1 A 2. 1. B 3. 2 c 4. 2. D
Кодирование модели (показать весь элемент category_1, но хотите показать только элемент mathcing UID) :
Category_2 = models.ForeignKey( Category_1, verbose_name=_('cat2'), related_name='cat2' )
Деталь:
class cat1(models.Model): UID = models.ForeignKey( 'Did', null=True, related_name="uuid", verbose_name='uuid', ) Item = models.FloatField( _('Item'), max_length = 150, null=True ) class cat2(models.Model): UID = models.ForeignKey( 'user.UserProfile', null = True, related_name = "uuid", verbose_name = 'uuid' ) Desc = models.CharField( _('desc'), max_length = 150 ) Cat1 = models.ForeignKey( 'cat1', related_name = "Cat1_item", verbose_name = 'Cat1_item' ) Table record Cat1 UID Item 1 A 2. B 3. C Cat2 UID Des Cat1_item 1. .. A 2. .. B 1. .. A
Примечание: Cat1_item
из Cat2
отображается значение, основанное на соответствующем значении cat2.UUID=cat1.UUID
Ответ №1:
Как я понимаю, вы хотите создать рекурсивную модель категорий. Этот код предоставляет вам рекурсивную модель категории с более чем 2 глубинами, если вам достаточно только одной модели категории и поля.
class Category(models.Model): name = models.CharField(max_length=255) parent = models.ForeignKey( 'self', null=True, blank=True, on_delete=models.SET_NULL, related_name='children' default=None )
Это будет похоже на:
Category: UID name parent 1 category_1 None 2. category_2 1 3. category_3 2 4. category_4 2 5. category_4 3
ИЗМЕНИТЬ: category_1 и category_2 будут показывать одни и те же категории
class Category(models.Model): name = models.CharField(max_length=255) class MyModel(models.Model): category_1 = models.ForeignKey(Category) category_2 = models.ForeignKey(Category)
Комментарии:
1. в нем было более одного поля. как это сделать ?
2. @YUIDDAAI пожалуйста, поделитесь своим классом модели. Является ли Category_1 полем или классом? это должен быть класс для вашего кода.
3. Пожалуйста, ознакомьтесь с подробным обновлением выше для вашей справки.
4. Привет @Юсуф Улусой есть какие-нибудь новости ?