DJANGO:我一直在尝试在视图中进行计算,并在每次单击按钮时调用函数



我一直在尝试使用django进行计算,但我不断遇到不同的错误。最近的一次是django中的Base10错误。

VIEWS.PY

def subs(request, pk):
sw = Swimmers.objects.filter(id=pk).values('sessions').first()
sw_list =  sw
sw_lists = sw +1
return JsonResponse(sw_lists, safe=False)

型号.PY

class Swimmers(models.Model):
name = models.CharField(max_length=200, blank=False)
lastname = models.CharField(max_length=200, blank=False)
idno = models.CharField(max_length=200, blank=False, null=True)
sessions = models.IntegerField(blank=False)
totalsessions = models.CharField(max_length=200, blank=False )
dateofpayment = models.CharField(max_length=200, blank=False)
phone = models.CharField(max_length=30, blank=False, null=True)
date_from = models.DateField(null=True)
date_to = models.DateField(null=True)
type_choice = (
("basic", "Basic"),
("3x1 week", "3x1 Week"),
("1 session", "1 Session"),
("2x1", "2x1"),
)
type = models.CharField(max_length=200, blank=False, null=True, 
choices=type_choice, default=type_choice)
amount = models.DecimalField(max_digits=6, decimal_places=2, blank=False, null=True)
registration = models.DateField(default=timezone.now)
keenphone = models.CharField(max_length=30, blank=False, null=True)
def __str__(self):
return self.name

URLS.PY

path('swimminglist/', views.SWGIndex.as_view(), name="swimminglist"),
path('create/', views.SWGCreateView.as_view(), name='create_swimmer'),
path('update/<int:pk>', views.SWGUpdateView.as_view(), name='update_swimmer'),
path('read/<int:pk>', views.SWGReadView.as_view(), name='read_swimmer'),
path('delete/<int:pk>', views.SWGDeleteView.as_view(), name='delete_swimmer'),
path('subt/<int:pk>', views.subs, name='subt'),

谢谢你们的帮助和支持,非常感谢。祝你们有一个幸福的日子。

我在代码中看到的第一件事是,你没有检查你要查找的记录是否存在,你可以这样做:

if sw:
sw_list =  sw
sw_lists = sw +1

或者更好的方法是:

from django.shortcuts import get_object_or_404
...
sw = get_object_or_404(Swimmers,id=pk).sessions

如果它不起作用,请张贴一个完整的错误块

最新更新