Настройка формы Django на основе модели из двух разных моделей ⇐ Python
Настройка формы Django на основе модели из двух разных моделей
У меня есть следующие 3 модели в django.
models.py ============= класс Клиент(модели.Модель): name = models.CharField(max_length=255, null=False, unique=True) класс Сервис(модели.Модель): name = models.CharField(max_length=255, null=False) архитектура = модели.NameField() класс customer_services(models.Model): клиент = модели.ForeignKey(Клиент, on_delete=models.SET_NULL, null = True, linked_name = 'customer_service_entries') service = models.ForeignKey(Service, on_delete=models.SET_NULL, null=True, linked_name='customer_service_entries') начало = модели.DateField() конец = модели.DateField() У меня есть следующие формы
forms.py ============== класс CustomerForm(ModelForm): класс Мета: модель = Клиент поля = ["имя"] класс CustomerServiceForm(ModelForm): класс Мета: модель = клиент_услуги поля = ["сервис", "начало", "конец"] класс ServiceForm(ModelForm): класс Мета: модель = Сервис поля = ["имя", "архитектура"] Я пытаюсь создать форму, в которой я мог бы добавлять услуги клиентам, и проблема, с которой я столкнулся, заключается в том, что в форме будут отображаться только поля из CustomerServiceForm. Проблема, с которой я столкнулся, заключается в том, что в таблице служб у меня может быть несколько служб с одним и тем же именем, но с разной архитектурой, но у меня нет способа отобразить это в форме. Допустим, у меня есть следующие значения в таблице Service.
таблица сервисов ============== идентификатор || имя || архитектура 1 || Тест || 32-битный 2 || Тест || 64-битный 3 || Другой тест || 32-битный 4 || Другой тест || 64бит 5 || ТестДва || 32-битный По сути, мне бы хотелось показать в форме что-то вроде этого
Тест – 32 бит Тест — 64 бит AnotherTest – 32 бит AnotherTest – 64 бит TestTwo – 32 бит Как отобразить архитектуру в раскрывающемся списке выбора? Я не могу придумать, как отобразить ее в форме, поскольку она не является частью этой модели.
У меня есть следующие 3 модели в django.
models.py ============= класс Клиент(модели.Модель): name = models.CharField(max_length=255, null=False, unique=True) класс Сервис(модели.Модель): name = models.CharField(max_length=255, null=False) архитектура = модели.NameField() класс customer_services(models.Model): клиент = модели.ForeignKey(Клиент, on_delete=models.SET_NULL, null = True, linked_name = 'customer_service_entries') service = models.ForeignKey(Service, on_delete=models.SET_NULL, null=True, linked_name='customer_service_entries') начало = модели.DateField() конец = модели.DateField() У меня есть следующие формы
forms.py ============== класс CustomerForm(ModelForm): класс Мета: модель = Клиент поля = ["имя"] класс CustomerServiceForm(ModelForm): класс Мета: модель = клиент_услуги поля = ["сервис", "начало", "конец"] класс ServiceForm(ModelForm): класс Мета: модель = Сервис поля = ["имя", "архитектура"] Я пытаюсь создать форму, в которой я мог бы добавлять услуги клиентам, и проблема, с которой я столкнулся, заключается в том, что в форме будут отображаться только поля из CustomerServiceForm. Проблема, с которой я столкнулся, заключается в том, что в таблице служб у меня может быть несколько служб с одним и тем же именем, но с разной архитектурой, но у меня нет способа отобразить это в форме. Допустим, у меня есть следующие значения в таблице Service.
таблица сервисов ============== идентификатор || имя || архитектура 1 || Тест || 32-битный 2 || Тест || 64-битный 3 || Другой тест || 32-битный 4 || Другой тест || 64бит 5 || ТестДва || 32-битный По сути, мне бы хотелось показать в форме что-то вроде этого
Тест – 32 бит Тест — 64 бит AnotherTest – 32 бит AnotherTest – 64 бит TestTwo – 32 бит Как отобразить архитектуру в раскрывающемся списке выбора? Я не могу придумать, как отобразить ее в форме, поскольку она не является частью этой модели.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение