#python #django #django-admin #django-database
Вопрос:
Это модель:
бронирование класса(модели.Модель):
booker = models.CharField(max_length=50)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
discount_code = models.CharField(max_length=50, null=True,
blank=True)
guest_no = models.PositiveIntegerField()
arrival_date = models.DateTimeField(auto_now=False,
auto_created=False, auto_now_add=False, null=True,blank=True)
departure_date = models.DateTimeField(null=True,blank=True)
is_active = models.BooleanField(default=False)
class Meta:
db_table = 'booking'
managed = True
verbose_name = 'Booking'
verbose_name_plural = 'Bookings'
класс Tempbooking(модели.Модель):
booker = models.CharField(max_length=50)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
discount_code = models.CharField(max_length=50, null=True,
blank=True)
guest_no = models.PositiveIntegerField()
arrival_date = models.DateTimeField(auto_now=False,
auto_created=False, auto_now_add=False, null=True,blank=True)
departure_date = models.DateTimeField(null=True,blank=True)
is_active = models.BooleanField(default=False, null=True,
blank=True)
def __str__(self):
return self.first_name
class Meta:
db_table = ''
managed = True
verbose_name = 'Tempbooking'
verbose_name_plural = 'Tempbookings'
Это форма:
форма для записи на занятия(формы.Форма модели):
discount_code = forms.CharField(required=False)
is_active = forms.HiddenInput()
class Meta:
model = Tempbooking
fields = '__all__'
widgets = {
'booker': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Enter Your username'}),
'first_name': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter Your First Name'}),
'last_name': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter Your Last Name'}),
'email': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter Your Email'}),
'guest_no': forms.NumberInput(attrs={'class':'form-control'}),
'arrival_date': forms.DateTimeInput(attrs={'class':'form-control','type':'date'}),
'departure_date': forms.DateTimeInput(attrs={'class':'form-control','type':'date'}),
'discount_code': forms.TextInput(attrs={'class':'form-control','placeholder':'If our discounted product'})
}
Это вид:
бронирование(запрос):
form = BookingForm()
form2 = TempbookingForm()
if request.method=='POST':
form = BookingForm(request.POST)
if form.is_valid() or form2.is_valid:
form2 = TempbookingForm(form)
form2.save()
return redirect('booking')
context = {
'form': form,
}
return render(request, 'booking.html', context)
Я пытаюсь сделать так, чтобы, если администратор войдет на страницу администратора и изменит is_valid на «True», вся информация в модели Tempbooking будет сохранена в модели бронирования…Пожалуйста, как мне это сделать?
Комментарии:
1. Возможно, будет более эффективно, если вы просто создадите единственную модель бронирования с дополнительным логическим полем isActive, которое по умолчанию будет ложным. И как только администратор одобрит это, это поле будет обновлено.
2. Да, просто подумал об этом, и то, как вы предложили, работает лучше, мне было бы проще просто использовать фильтр, чтобы разделить те, которые являются активными, являются истинными, от тех, которые являются активными, являются ложными