Не пойму как в django сохранить форму FK?

  1. **1.Где почитать про такое объявления **request.POST, **request.FILES, в инете не нашел

  2. init() got an unexpected keyword argument 'csrfmiddlewaretoken', как исправить, ятак понимаю нужно kwargs ему, тоже не нашелв инете(

  3. сохранить Court > ForengKye > CourtInfo после того как сделал commint=False должен взять id.Form = CourtInfo.save()?

Model.py** class InfoCourt(models.Model): """Информация о деле"""

status = models.ForeignKey(
    Status,
    on_delete=models.CASCADE,
    verbose_name='Статус  дела',
    related_name='court_status',
    default=None,
    blank=True,
    null=True
                           )
judge = models.ForeignKey(
    judge,
    on_delete=models.CASCADE,
    verbose_name='Судья',
    related_name='court_judge',
    default=None,
    blank=True,
    null=True
                           )

case_number = models.CharField(
    max_length=24,
    blank=True,
    null=True,
    default=None,
    verbose_name='Номер Судебного дела')
uid_number = models.CharField(
    max_length=26,
    blank=True,
    null=True,
    default=None,
    verbose_name='УИД Судебного дела')
data_reg = models.DateField(
    blank=True,
    null=True,
    default=None,
    verbose_name='Дата регистрации дела')
location = models.ForeignKey(
    ListCourt,
    on_delete=models.CASCADE,
    blank=True,
    null=True,
    default=None,
    related_name='location', verbose_name='Место  ')
message = models.TextField(
    max_length=50000,
    blank=True,
    null=True,
    default=None,
    verbose_name='Результат события Коментарий')
is_active = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)

def __str__(self):
    return "%s" % self.uid_number

class Meta:
    verbose_name = "Информация дела"
    verbose_name_plural = "Информация дела"
    ordering = ['-created']

def get_list(self):
    return self.location.name

class Court(models.Model): """Таблица оперций связанных с судебным процессом """

info_court = models.ForeignKey(
    InfoCourt,
    on_delete=models.CASCADE,
    related_name='info_courts',
    blank=True,
    null=True,
    verbose_name='Список юр.оперций '
        )

procedure = models.ForeignKey(
    Procedure,
    on_delete=models.CASCADE,
    related_name='procedure',
    verbose_name='Наименование события')
worker = models.ForeignKey(
    worker,
    on_delete=models.CASCADE,
    related_name='worker',
    verbose_name='Отв-ный')
data_finish = models.DateField(
    blank=True,
    null=True,
    default=None,
    verbose_name='Срок исполнения С')
date_start = models.DateTimeField(
    blank=True,
    null=True,
    default=None,
    verbose_name='Начало исполнения С')
date_stop = models.DateTimeField(
    blank=True,
    null=True,
    default=None,
    verbose_name='Завершения исполнения С')
akt_end = models.ForeignKey(
    ListEnd,
    on_delete=models.CASCADE,
    default=None,
    related_name='akt_end',
    verbose_name='Событие утверждения')
time_stop = models.DateField(
    blank=True,
    null=True,
    default=None,
    verbose_name='Время завершение операции ')
file_paste = models.FileField(
    upload_to='upload/Courtdoc/',
    null=True,
    blank=True,
    default=None,
    verbose_name='"Файл прикрепленный')
curt_hall = models.CharField(
    max_length=24,
    blank=True,
    null=True,
    default=None,
    verbose_name='Номер кабинета заседания')
message = models.CharField(
    max_length=50000,
    blank=True,
    null=True,
    default=None,
    verbose_name='Результат,коментарий события ')
is_active = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)

def __str__(self):
    return "%s" % self.procedure

class Meta:
    verbose_name = "Оперция судопроизводства"
    verbose_name_plural = "Оперции судопроизводства"
    ordering = ['created']

forms.py class CourtInfoForm(ModelForm): """Форма справочной информации о судебном деле"""

class Meta:
    model = InfoCourt
    fields = [
        "case_number",
        "uid_number",
        "data_reg",
        "location",
        "status",
        "message",
        ("judge"),


    ]

    widgets = {

        "case_number": TextInput(attrs={
            'class': 'form-control',
            'type': 'text',
            'placeholder': 'Номер  дела'

        }),
        "uid_number": TextInput(attrs={
            'class': 'form-control',
            'placeholder': 'УИД дела'
        }),
        "data_reg": DateInput(format='%d/%m/%Y', attrs={
            'class': 'form-control',
            'placeholder': 'Дата  регистрации в суде',
            'data-date-container': '#datepicker2',
            'data-provide': 'datepicker',
            'data-date-autoclose': 'true',
            'data-date-format': 'dd/mm/yyyy',

        }),
        "location": Select(attrs={
            'class': 'form-control',
            'placeholder': 'Судебная инстанция'

        }),
        "judge": Select(attrs={
            'class': 'form-control',
            'placeholder': 'Судья '

        }),
        "status": Select(attrs={
            'class': 'form-control',
            'placeholder': 'Статус дела'

        }),
        "message": Textarea(attrs={
            'class': 'form-control',
            'type': 'text',
            'placeholder': 'Комментарий к делу  '

        }),
    }

class CourtForm(ModelForm): """Форма оперций связанных с судебным процессом """

class Meta:
    model = Court
    exclude =["message"]
    widgets = {

        "message": Textarea(attrs={
            'class': 'form-control',
            'name': "area",

            'placeholder': 'Результат,коментарий события '

        }),
        "file_paste": FileInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Прикрепить документ',

            }),

        "date_start": DateInput(attrs={
            'class': 'form-control',
            'placeholder': 'Начало исполнения ',

            'data-date-format': 'dd/mm/yyyy',
        }),

        "data_finish": DateInput(attrs={
            'class': 'form-control',
            'placeholder': 'Срок исполнения ',

            'data-date-format': 'dd/mm/yyyy',
        }),
        "procedure": Select(attrs={
            'class': 'form-control',
            'placeholder': 'Процедура '

        }),
        "akt_end": Select(attrs={
            'class': 'form-control',
            'placeholder': 'Утверждение '

        }),
        "worker": Select(attrs={
            'class': 'form-control',
            'placeholder': 'Отв-ный'

        })
    }

views.py def court_event_add(request, pk): """Создание-добавление нового судебного события"""

accident = Accident.objects.get(id=pk)
accident_pk = accident.pk
court_info = accident.court_info
if request.method == 'POST':
    CourtForms = CourtForm(**request.POST, **request.FILES, prefix='court_forms', instance=Court)
    if CourtForms.is_valid():
        form = CourtForms.save(commit=False)
        # Не ясно тут 
        CourtForms.info_court = form
        form.save()
        return redirect('/')
CourtForms = CourtForm(prefix='court_forms',)
template_name = 'dist/court/event/read_court_add_event.html'
data = {'court_info': court_info,
        'court': CourtForms,
        'court_list': court_list,
        'accident_pk': accident_pk
        }

return render(request, template_name, data)

def court_event_add(request, pk): """Создание-добавление нового судебного события"""

accident = Accident.objects.get(id=pk)
accident_pk = accident.pk
court_info = accident.court_info.info_courts.all()
for item in court_info:
    item.pk, item.info_court
    print(item.pk, item.info_court, item.info_court_id, item.worker)
court_info_id = accident.court_info.pk
if request.method == 'POST':
    form = CourtForm(request.POST, request.FILES)
    print('CourtForm', form)
    if form.is_valid():
        form.save(commit=False)

        form.info_court.pk = court_info_id
        form.save()
        return redirect('/')
CourtForms = CourtForm()
template_name = 'dist/court/event/read_court_add_event.html'
data = {'court_info': court_info,
        'court': CourtForms,
        'court_list': court_list,
        'accident_pk': accident_pk
        }
Вернуться на верх