如果我更新f1,则删除f2,如果更新f2,则删除f1 ... 如何改变未更改的字段?
抱歉我的英语很糟糕views.py
def edit_iscrizioni(request, corso_id):
corsi = Corso.objects.filter( pk=corso_id)
fasca = Corso.objects.get( pk=corso_id)
tabella= Iscrizione.objects.filter(user=request.user)
iscrizione=get_object_or_404(Iscrizione, pk=tabella)
if request.method == "POST":
form = IscrizioneForm(request.POST, instance= iscrizione)
if form.is_valid():
iscrizione = form.save(commit=False)
iscrizione.user = request.user
iscrizione.published_date = timezone.now()
if fasca.progressivo:
if fasca.f1:
iscrizione.corso1_id= corso_id
if fasca.f2:
iscrizione.corso2_id= corso_id
form.save()
return redirect('privata')
else:
form = IscrizioneForm(instance= iscrizione)
return render(request, 'corsi/edit.html', {'form':form, 'corsi':corsi})
model.py
class Corso(models.Model):
titolo = models.CharField(max_length=100)
progressivo= models.BooleanField(default=False)
f1= models.BooleanField(default=False)
f2= models.BooleanField(default=False)
class Iscrizione(models.Model):
user = models.ForeignKey('auth.User')
corso1= models.ForeignKey('Corso', blank=True, null=True, related_name="corso1")
corso2= models.ForeignKey('Corso', blank=True, null=True, related_name="corso2")
答案 0 :(得分:1)
您已在此处创建了一个对象:
iscrizione = form.save(commit=False)
您应该将IT保存到数据库中 - 使用
iscrizione.save()
而不是
form.save()
EDIT 那么,我认为这里也有问题:
tabella= Iscrizione.objects.filter(user=request.user)
iscrizione=get_object_or_404(Iscrizione, pk=tabella)
tabella
- 是一个查询集(Iscrizione对象列表),我认为你不能得到一个pk
(主键)等于查询集的对象。
修改
并尝试
if fasca.progressivo:
if fasca.f1:
iscrizione.corso1 = fasca
if fasca.f2:
iscrizione.corso2 = fasca