Django:在不重新加载页面的情况下更新sqlite中的行数据

Django:在不重新加载页面的情况下更新sqlite中的行数据,django,sqlite,Django,Sqlite,我正在显示数据库中的随机图像。显示图像后,在显示图像时,其计数应设置为1,以便不再使用。 我曾尝试编写一个视图函数,该函数尝试在选择图像显示时更改计数。没有涉及更新表单或按钮单击 视图.py from django.shortcuts import render from django.conf import settings from .models import Image import random # Create your views here. def index(request):

我正在显示数据库中的随机图像。显示图像后,在显示图像时,其计数应设置为1,以便不再使用。 我曾尝试编写一个视图函数,该函数尝试在选择图像显示时更改计数。没有涉及更新表单或按钮单击

视图.py

from django.shortcuts import render
from django.conf import settings
from .models import Image
import random
# Create your views here.
def index(request):
    y= random.randint(0,10)
    p = Image.objects.all()[y]
    if (p.p_image_count==0):
        p_img = Image.objects.all()[y]
        Image.objects.all()[y].p_image_count += 1
        # Image.save(self)

    lst = [p.s_image1, p.s_image2, p.s_image3, p.s_image3, p.s_image4, p.s_image5]
    x = random.randint(0,4)
    tmp =[]
    for i in range(0,3):
        p = Image.objects.all()[random.randint(0,14)]
        tmps=[p.s_image1, p.s_image2, p.s_image3, p.s_image3, p.s_image4, p.s_image5]
        tmp.append(tmps[random.randint(0,4)])



    s_img = [lst[x]]+ tmp
    random.shuffle(s_img)




    return render(request,'index.html',{"p_img":p_img, "s_img": s_img, 'media_url':settings.MEDIA_URL})```

模型.py-图像模型



class Image(models.Model):

    p_image = models.ImageField(max_length=255,upload_to='p_image',default='NULL', blank='NULL')
    p_image_count = models.IntegerField(default=0)
    s_image1 = models.ImageField(max_length=255,upload_to='s_image')
    s_image1_flag = models.BooleanField(default=False)
    s_image2 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image2_flag = models.BooleanField(default=False)
    s_image3 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image3_flag = models.BooleanField(default=False)
    s_image4 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image4_flag = models.BooleanField(default=False)
    s_image5 = models.ImageField(max_length=255,upload_to='s_image',default='NULL', blank='NULL')
    s_image5_flag = models.BooleanField(default=False)

    #if image displayed currently , set flag to true


在我学会正确使用.save()后,问题得到了解决。实际上,我正在使用image.save()更新p_image_计数

正确的做法是-

Image.objects.all()[y].save()
.save()需要更新的行对象


谢谢你抽出时间!:)

如果p_image_count==0,则将显示其余五个图像。你为什么用旗子。你一次会展示多少张图片?@sandeep我想做一个游戏,让我们在图片上匹配人们给出的答案。因此,如果一个标志被设置为true,这意味着该图像的答案存在,并且应该给下一个玩家该图像,以便他/她的答案可以在他们提交他们的答案后匹配。