@nastya_guk

Как через одну форму создать «Категорию» и запись в этой категории?

Добрый день. Есть модели "Заявка" и "Материалы заявки":
class Request(models.Model):
    id_request     = models.AutoField(primary_key=True)
    status         = models.CharField(default="Подписание" , max_length=20)
    nomer_request  = models.IntegerField(blank=True)
    data_request   = models.DateField()
    person_request = models.CharField(max_length=45)
    def __str__(self):
        return str(self.nomer_request)


class Request_material(models.Model):
    id_request     = models.ForeignKey(Request, on_delete=models.CASCADE)
    status         = models.CharField(default="Подписание" , max_length=20)
    name           = models.CharField(max_length=200)
    mnemokod_SAP   = models.IntegerField()
    ed_izm         = models.CharField(max_length=10)
    priznak_rem    = models.BooleanField()
    price          = models.IntegerField()
    colvo_request  = models.IntegerField()
    prihod         = models.DateField(null=True, blank=True)
    spisan         = models.DateField (null=True, blank=True)
    def __str__(self):
        return self.name


Делаю форму создания заявки и у меня нет понимания как сделать так, чтобы материалы из формы привязывались к самой заявке, созданной в этой же форме

В документации ничего про это или похожего не нашла, поэтому пишу сюда. Идей вообще нет. Прошу помощи
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Filipp_SC
PYTHON♥️
Создаете в директории приложения файл forms.py
Импортируете туда модели
Далее можете использовать специальный класс ModelForm тут можно почитать подробнее.
Пример кода для forms.py:
from .model import Request
from django.forms import ModelForm

class FormRequest(ModelForm):
    class Meta:
        model = Request   # указываем модель с которой будет связанна форма 
        fields = '__all__'  # указываем какие поля из модели перейдут в форму

Далее создаем представление во views.py
Пример кода для Views.py:

from django.views import generic

class СreateRequest(generic.CreateView):
    model = Request   
    form_class = FormRequest
    template_name = '.../........html'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы