import json
from django.http import Http404, HttpResponse
from main.models import Personnages
def store_data(request):
if request.is_ajax() and request.POST:
value = request.POST.get("value")
toChange = request.POST.get("name")
id = request.POST.get("id") #A IMPORTER
perso = Personnages.objects.get(id=id)
perso.toChange = value
perso.save()
return HttpResponse(value+toChange)
else :
raise Http404
我已经编写了这段代码,但是问题是这部分不起作用:
perso.toChange = value
这似乎不起作用。我认为这是因为我从JSON而不是字段中提取了字符串。
这是供参考的模型:
class Personnages(models.Model):
id = models.AutoField(primary_key=True)
Joueur = models.ForeignKey(User, on_delete=models.PROTECT)
Nom = models.CharField(max_length=40)
Age = models.CharField(max_length=20)
Genre = models.CharField(max_length=30)
Date = models.DateTimeField(default=timezone.now, verbose_name="Date de parution")
Image = models.ImageField(upload_to="imagePerso/", null=True)
答案 0 :(得分:1)
我猜您正在尝试基于动态值设置属性。您正在寻找setattr方法(https://docs.python.org/3/library/functions.html#setattr)
根据您的情况,替换
perso.toChange = value
使用
setattr(perso, toChange, value)
没有关系的是,在编写python代码时,建议遵循PEP-8中所述的Python编码标准。例如,toChange应该是to_change等等。