Как я могу заполнить связанные модели отдельно через формы (Onetoonefield)?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу заполнить связанные модели отдельно через формы (Onetoonefield)?

Сообщение Anonymous »

У меня есть две модели таблиц.
Я пишу данные в одну из них, используя форму. Сначала я пишу первую модель. < /p>
На втором этапе, вторая модель. /> В будущем я планирую добавить новые модели и формы, а также вторую форму, используя поле из первой модели. < /p>
Что я могу сделать? Но в разных в двух формах и в двух шаблонах. src = "https://i.sstatic.net/ykdcztu0.png"/>
Как я могу заполнить связанные модели отдельно через формы (Onetoonefield)?
from django.db import models

# Create your models here.

class ArkiObject (models.Model):
nameobject = models.TextField(verbose_name="Наименование объекта")

TYPE_OBJECT = [
("1", "Котельная"),
("2", "Сети"),
("3", "БМК"),
("4", "ЦТП"),
("5", "ТГУ"),
]

TYPE_WORK = [
("1", "Реконструкция"),
("2", "Капитальный ремонт"),
("3", "Строительство"),
]

TYPE_CITY = [
("1", "Бронницы"),
("2", "Луховицы"),
("3", "Павловский Посад"),
("4", "Раменское"),
("5", "Шатура"),
]

class ArkiOneObject (models.Model):
city = models.CharField(
choices=TYPE_CITY,
verbose_name="Выберите ОМСУ")
typeobject = models.CharField(
choices=TYPE_OBJECT,
verbose_name="Выберите тип объекта")
typework = models.CharField(
choices=TYPE_WORK,
verbose_name="Выберите тип работ")
nameobject = models.OneToOneField(ArkiObject, verbose_name="Наименование объекта", on_delete=models.CASCADE)

class ArkiTwoObject (models.Model):
nameobject = models.OneToOneField(ArkiObject, verbose_name="Наименование объекта", on_delete=models.CASCADE)
power_lenth = models.FloatField(verbose_name="Мощность или длина")
potr_msd = models.IntegerField(verbose_name="Кол-во Потребители МСД")
potr_cityzen = models.IntegerField(verbose_name="Кол-во Жители")
potr_social = models.IntegerField(verbose_name="Кол-во Социальные")
value_budget = models.FloatField(verbose_name="Объём финансирования")
podryadchik = models.CharField(verbose_name="Подрядчик")
date_contract = models.DateField(verbose_name="Дата заключения контракта")
zena_contr = models.FloatField(verbose_name="Цена контракта")

from django import forms
from .models import *

class FormOne (forms.ModelForm):
class Meta:
model = ArkiOneObject
fields = "__all__"

class FormTwo (forms.ModelForm):
class Meta:
model = ArkiTwoObject
fields = "__all__"

class FormThree (forms.ModelForm):
class Meta:
model = ArkiObject
fields = "__all__"

from django.shortcuts import render, redirect
from django.template import context
from django.http import HttpResponse
from .models import *
from .forms import *

def index(request):
context={}

return render(request, 'index.html', context)

def formone(request):
context = {}
formone = FormOne(request.POST or None)
if formone.is_valid():
formone.save()

return redirect("formone")
context['formone'] = formone
return render(request, "formone.html", context)

def formtwo(request):
context = {}
formtwo = FormTwo(request.POST or None)
if formtwo.is_valid():
formtwo.save()

return redirect("formtwo")
context['formtwo'] = formtwo
return render(request, "formtwo.html", context)

def formthree(request):
context = {}
formthree = FormThree(request.POST or None)
if formthree.is_valid():
formthree.save()

return redirect("formthree")
context['formthree'] = formthree
return render(request, "formthree.html", context)


Подробнее здесь: https://stackoverflow.com/questions/796 ... toonefield
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»