Как сохранить с помощью модели Django форму нескольких данных в одну таблицу? - PullRequest
1 голос
/ 09 июля 2019

У меня есть модель для сохранения данных бронирования с моделью формы, и она работает очень хорошо, но только для одного человека.Я хотел бы, чтобы, когда число людей превышало человека, форма запрашивала одинаковые данные для следующих людей в той же форме с той же моделью (таблица).

Я пытался создать несколько моделей для сохранения данныхв зависимости от количества людей, но это не то, что я хочу, потому что я хочу сделать это с одной моделью, я имею в виду одну таблицу из базы данных.

Это моя модель:

class BusTicket(models.Model):
'''
Class to define a bus ticket
'''
vip_types = (
    ('Yes', 'Yes'),
    ('No', 'No'),
    )
#each indivitual status 
PENDING = 'Pending'
CONFIRMED = 'Confrimed'

TICKET_STATUSES = ((PENDING,'Pending'),
    (CONFIRMED,'Confrimed'),
    )
vip_booking = models.CharField(max_length=60, choices=vip_types, default="No")
gender      = models.CharField(max_length=15, choices=gender_choices)
first_name  = models.CharField(max_length = 255)
last_name   = models.CharField(max_length = 255)
email       = models.EmailField(max_length = 254)
active      = models.BooleanField(default=True)
update      = models.DateTimeField(auto_now=True)
timestamp   = models.DateTimeField(auto_now_add=True)
bus_id      = models.ForeignKey(BusTravels, on_delete=models.CASCADE, blank=True, null=True)
phone_number = PhoneNumberField() 

def __str__(self):
    return self.first_name + ' ' + self.last_name + ' ' + str(self.phone_number)

Этомоя модель формы для сохранения данных:

class BusTicketForm(forms.ModelForm):

vip_types = (
    ('Yes', 'Yes'),
    ('No', 'No'),
    )
vip_booking = forms.ChoiceField(choices=vip_types, widget=forms.RadioSelect,required=True, initial=True)

class Meta:
    model = BusTicket
    fields = ['first_name', 'last_name', 'vip_booking', 'email',  'gender',
    'phone_number', 'bus_id',]
    widgets = {
        'first_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}),
        'last_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Last Name'}),
        'email': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Email'}),
        'gender': forms.Select(attrs={'class': 'form-control'}),
        'phone_number': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Phone number with country code'}),
        }

Это моя модель представления для обработки формы:

def book_ticket(request, bus_id):
get_variable_model()
if request.user.is_authenticated:

    form = BusTicketForm(request.POST, request.FILES or None)
    context = {
        'form': form
        }
    next_ = request.GET.get('next')
    next_post = request.POST.get('next')
    redirect_path = next_ or next_post or None
    if form.is_valid():
        print(request.POST)
        form.save()

        return redirect('register-house-thanks')
        if is_safe_url(redirect_path, request.get_host()):
            return redirect(redirect_path)
    return render(request, 'listings/sell_houses.html', context)
else:
    print("You don't have access to this page!")
    return render(request, 'accounts/notpermission.html')

Как я уже сказал, я хочу сохранить те же данные в зависимости от количествачеловек, который заказывает билет от одной модели (таблицы) и одной модели формы на один пост.например, если человек - 1 человек, в форму будут введены данные для одного человека, а для другого человека -> 1 человек. У меня будут те же данные для числа людей, как это: 1 данные модели формы лица 2 данные модели формы лица 3 человекаДанные модели формы И сохраните эти данные в модель (таблицу) из одной формы данных публикации.Для одной модели данных 1 человека она работает правильно, но я не смог найти несколько.Спасибо вам большое за любую помощь.

...