Django модель как сделать отображение многие к одному?

Я пытаюсь сопоставить несколько полей с одним и тем же полем в классе vendor и menu. Если я сопоставляю с помощью внешнего ключа, как показано ниже, это работает. Но это не то, что я хочу.

class OrderItem_Mon(models.Model):

    vendor_name = models.ForeignKey(Vendor, on_delete=models.SET_NULL, null=True)
    menu_name = models.ForeignKey(Menu, on_delete=models.SET_NULL, null=True)
    date_created = models.DateTimeField('date created', auto_now_add=True)
    note = models.CharField('note', max_length=255, null=True, blank=True)

Мне нужно сопоставить несколько полей с одним и тем же полем определенной таблицы следующим образом.

class OrderItem_Mon(models.Model):

    vendor_name_1 = models.ForeignKey(Vendor, db_column='vendor_name', on_delete=models.SET_NULL, null=True)
    menu_name_1 = models.ForeignKey(Menu, db_column='menu_name',on_delete=models.SET_NULL, null=True)
    vendor_name_2 = models.ForeignKey(Vendor, db_column='vendor_name',on_delete=models.SET_NULL, null=True)
    menu_name_2 = models.ForeignKey(Menu, db_column='menu_name', on_delete=models.SET_NULL, null=True)
    date_created = models.DateTimeField('date created', auto_now_add=True)
    note = models.CharField('note', max_length=255, null=True, blank=True)

Однако это не работает. Как мне заставить это работать? В принципе, мне нужно сделать новую форму, в которой есть dropbox, который получает значение от поставщика и модель меню для каждого поля. Помогите

Необходимо добавить атрибут related_name для полей модели внешнего ключа и дать разные имена.

Ошибка связана с тем, что одна и та же модель используется в качестве внешнего ключа для нескольких полей. Это создает проблему во время миграции. Просто установка различных .related_name не вызовет никаких проблем.

Вернуться на верх