mercredi 22 avril 2020

Automatically changing value in Django

Good evening! I am creating an app using Django to manage car rental service. I have a model Car, User and Order, which has a ForeignKey inheriting from Car. I created a form for allowing user creating an order. I want to automatically change the car status as 'Rented' (in Car model it is CharField with 3 choices). Can somebody help me to solve this problem?

class Car(models.Model):
    STATUS = (
    ('Dostępny', 'Dostępny'),
    ('Wypożyczony', 'Wypożyczony'),
    ('Inne', 'Inne'),
    )
    marka = models.CharField(max_length=100)
    model = models.CharField(max_length=100)
    production_year = models.CharField(max_length=100)
    color = models.CharField(max_length=100)
    id_plate = models.CharField(max_length=100)
    status = models.CharField(max_length=100, choices=STATUS)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.marka + ' ' + self.model + ' (' + self.color + ')'

class Order(models.Model):
    client = models.ForeignKey(Klient, on_delete=models.CASCADE)
    car = models.ForeignKey(Car, on_delete=models.CASCADE)
    date_ordered = models.DateField(default=datetime.now)
    date_return = models.DateField()
    date_added = models.DateTimeField(auto_now_add=True)

That is my form:

class OrderForm(ModelForm):
    class Meta:
        model = Order
        fields = ['client', 'car', 'date_ordered', 'date_return']

That's views.py:

def createOrder(request):
   form = OrderForm()
   if request.method == 'POST':
     form = OrderForm(request.POST)
     if form.is_valid():
        form.save()
        return redirect('home')
   context = {'form': form}
   return render(request, 'namiejscu/order_form.html', context)



Aucun commentaire:

Enregistrer un commentaire