Как вставить данные в один и тот же идентификатор таблицы с помощью Javascript Clone Code?
Я пытаюсь что-то сделать с django и мне нужно клонировать элементы формы. Я нашел некоторый код, он работает, но он вставляет разные id таблицы. Я хочу клонировать два поля формы с помощью кода js clone. Он клонирует и затем публикует поля, когда я смотрю в базу данных, я вижу, что два поля вставлены с разными id. Как я могу это исправить?
Когда вы смотрите на изображение базы данных, вы видите одинаковые номера, но разные идентификаторы. Как я могу вставить данные в один и тот же идентификатор с двумя полями формы.
Это create_normal.html
Вот база данных
Вот мои коды.
models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class PatientBilgi(models.Model):
name = models.CharField(max_length=155)
surname = models.CharField(max_length=155)
def __str__(self):
return self.name
class PatientAliskanlik(models.Model):
sigara = models.CharField(max_length=155)
alkol = models.CharField(max_length=155)
def __str__(self):
return self.sigara
class Patient(models.Model):
name = models.CharField(max_length=155)
pbilgi = models.ForeignKey(PatientBilgi, on_delete=models.CASCADE, blank=True, null=True)
palis = models.ForeignKey(PatientAliskanlik, on_delete=models.CASCADE, blank=True, null=True)
def __int__(self):
return self.name
forms.py
from django import forms
from .models import Patient, PatientBilgi, PatientAliskanlik
from django.forms import (formset_factory, modelformset_factory)
class PatientForm(forms.ModelForm):
class Meta:
model = Patient
fields = ['name']
class PatientBilgiForm(forms.ModelForm):
class Meta:
model = PatientBilgi
fields = ['name', 'surname']
class PatientAliskanlikForm(forms.ModelForm):
class Meta:
model = PatientAliskanlik
fields = ['sigara', 'alkol']
###### Formsets
class PatientBilgiModelForm(forms.ModelForm):
class Meta:
model = PatientBilgi
fields = ('name', 'surname' )
labels = {
'name': 'Patient Name',
'surname': 'Patient Surname'
}
widgets = {
'name': forms.TextInput(attrs={
'class': 'form-control',
'placeholder': 'Enter Patient Name and Surname here'
}
)
}
PatientBilgiFormset = formset_factory(PatientBilgiForm)
BookModelFormset = modelformset_factory(
PatientBilgi,
fields=('name', 'surname', ),
extra=1,
widgets={
'name': forms.TextInput(attrs={
'class': 'form-control',
'placeholder': 'Enter Patient Name here'
}
),
'surname': forms.TextInput(attrs={
'class': 'form-control',
'placeholder': 'Enter Patient Surname here'
}
)
}
)
PatientFormset = modelformset_factory(
Patient,
fields=('name', ),
extra=1,
widgets={'name': forms.TextInput(attrs={
'class': 'form-control',
'placeholder': 'Enter Author Name here'
})
}
)
views.py
from django.shortcuts import render, redirect
from django.urls import reverse
from .models import Patient, PatientBilgi, PatientAliskanlik
from .forms import PatientForm, PatientBilgiForm, PatientAliskanlikForm, PatientBilgiFormset, PatientBilgiModelForm, PatientFormset
from formtools.wizard.views import SessionWizardView
# Create your views here.
def home(request):
return render(request, 'home.html')
def hasta_listele(request):
data = Patient.objects.all()
return render(request, 'deneme.html', {'data': data})
def hasta_detay(request, id):
kata = Patient.objects.get(id=id)
kata1 = PatientBilgi.objects.get(id=id)
kata2 = PatientAliskanlik.objects.get(id=id)
return render(request, 'hasta_detay.html',
context = {
'kata': kata,
'kata1': kata1,
'kata2': kata2}
)
# Multi Step Form Submission
class multistepformsubmission(SessionWizardView):
template_name = 'hasta_kayit.html'
form_list = [PatientBilgiForm, PatientAliskanlikForm, PatientForm]
def done(self, form_list, **kwargs):
form_data = [form.cleaned_data for form in form_list]
patientdata = PatientBilgi(name = form_data[0]['name'], surname = form_data[0]['surname'])
patientdata.save()
patientdata1 = PatientAliskanlik(sigara = form_data[1]['sigara'], alkol = form_data[1]['alkol'])
patientdata1.save()
patientdata2 = Patient(name = form_data[2]['name'] )
patientdata2.save()
data = Patient.objects.all()
data1 = PatientBilgi.objects.all()
data2 = PatientAliskanlik.objects.all()
return render(self.request, 'done.html', context={
'data': data,
'data1': data1,
'data2': data2
})
######## Deneme Amaçlı Fonksiyon, gereği yok....
def deneme(request):
a = Patient.objects.all()
return render(request, "a.html", {'a': a })
##################
########## Formset Fonskiyonu
def create_book_normal(request):
template_name = 'create_normal.html'
if request.method == 'GET':
formset = PatientBilgiFormset(request.GET or None)
elif request.method == 'POST':
formset = PatientBilgiFormset(request.POST)
if formset.is_valid():
for form in formset:
name = form.cleaned_data.get('name')
surname = form.cleaned_data.get('surname')
# save book instance
if name:
PatientBilgi(name=name).save()
PatientBilgi(surname=surname).save()
return redirect('done')
return render(request, template_name, {
'formset': formset,
})
def done1(request):
return render(request, 'done.html')
create_normal.html
Я нашел другой способ, где не нужен javascript. На самом деле я хочу сделать несколько форм и каждая дата должна принадлежать одному регистру. А иногда один регистр может принадлежать нескольким данным. После всех поисков я нашел другой способ реализовать свой проект. Я сделал модель с первичным ключом, а затем я дал foreignkey и onetonefield другим моделям. Все решилось. Вот полный код проекта: https://github.com/eseymenler/demo2