Попытка проанализировать всю информацию из модели Tempbooking в модель бронирования, если администратор изменит значение is_active на «true» в django tempbooking

#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. Да, просто подумал об этом, и то, как вы предложили, работает лучше, мне было бы проще просто использовать фильтр, чтобы разделить те, которые являются активными, являются истинными, от тех, которые являются активными, являются ложными