Не передается ввод из формы django в модале к модели
Я хочу написать макет платежной функции и базы данных, которая получает информацию о карте от Django и продолжает платеж.
Итак, я написал код следующим образом, и даже если я ввожу информацию в модале и нажимаю кнопку начисления, экземпляр не попадает в модель Payments.
html
models.py
class Payment(models.Model):
payment_id = models.CharField(max_length=250)
customer = models.ForeignKey(User, on_delete=models.CASCADE)
cartitem = models.ForeignKey(CartItem, on_delete=models.CASCADE)
card_number = models.IntegerField()
validity = models.IntegerField()
cvc = models.IntegerField()
card_password = models.IntegerField()
def __str__(self):
return '{0} {1} {2} {3}'.format(self.customer, self.payment_id, self.card_number, self.cartitem)
views.py
def charge(request):
if request.method == 'POST':
form = PaymentForm(request.POST)
if form.is_valid():
payment = form.save(commit=False)
payment.save()
return redirect('cart:cart_detail')
else:
form = PaymentForm()
return render(request, 'cart/cart.html', {'form':form})
form.py
class PaymentForm(forms.ModelForm):
class Meta:
model = Payment
fields = ('card_number','validity','cvc','card_password')
urls.py(cart)
app_name = 'cart'
urlpatterns = [
path('add/<int:pk>/', views.add_cart, name='add_cart'),
path('', views.cart_detail, name='cart_detail'),
path('remove/<int:pk>/', views.cart_remove, name='cart_remove'),
path('full_remove/<int:pk>/', views.full_remove, name='full_remove'),
path('charge/', views.charge, name='charge'),
]
urls.py(project)
urlpatterns = [
path('admin/', admin.site.urls),
path('movie/', include('movie.urls')),
path('ticket/', views.TicketList.as_view()),
path('ticket/<int:pk>/', views.TicketDetail.as_view()),
path('cart/', include('cart.urls')),
path('seat/<int:show_id>/', views.seat_page, name='seat_page'),
path('profile/', include('profile.urls')),
path('store/', include('store.urls')),
]
Как я могу это исправить?
Измените input
на button
здесь:
<div>
<input type="submit" value="charge">
</div>
<div>
<button type="submit" value="charge">Charge</button>
</div>
Также попробуйте распечатать вывод request.POST
в журналах сервера, чтобы проверить, что происходит.