這是我第一次嘗試使用外鍵刪除對象。該機型有1一對多的關係:使用外鍵刪除對象時找不到Django頁面(1到多個)
class NumObject(models.Model):
title= models.CharField(max_length=50)
number= models.IntegerField()
ident= models.IntegerField()
usersave= models.CharField(max_length=100, blank= True)
def __str__(self):
return self.title
def save(self, *args, **kwargs):
super(NumObject,self).save(*args,**kwargs)
def get_absolute_url(self):
return reverse('posts:detail', kwargs={'id': self.id})
class Sounds(models.Model):
numobj = models.ForeignKey(NumObject)
title = models.CharField(max_length=50)
sound = models.FileField()
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('posts:detail', kwargs={'title': self.title})
的NumObject和聲音的觀點是這樣的:
def post_detail(request,id= None):
instance= get_object_or_404(NumObject, id=id)
context= {
'title': instance.number,
'instance': instance,
}
return render(request,'post_detail.html',context)
def sound_detail(request,id= None):
instancesound= get_object_or_404(Sounds, id=id)
context= {
'sound': instance.number,
'instancesound': instancesound,
}
return render(request,'sound_detail.html',context)
在我的模板
,我能夠顯示所有的「聲音」相關聯的對象通過這樣做一個「NumObject」對象:
{% for obj in instance.sounds_set.all %}
{% include 'sound_detail.html' %}
{% endfor %}
sound_detail.html具有顯示所有的聲音對象的UL,以及到刪除視圖的鏈接對每個聲音對象:
<a href="/{{instance.id}}/delete/">Delete</a>
進行刪除查看URL看起來是這樣的:
url(r'^(?P<id>\d+)/delete/$', views.post_delete, name= 'delete'),
和刪除視圖:
def post_delete(request, id):
sound= get_object_or_404(Sounds, pk=id).delete()
return redirect('posts:list')
出於某種原因,當我嘗試刪除個人 「聲音」對象,我收到請求URL爲http://127.0.0.1:8000/8/delete/的「找不到頁面」,並且出現「沒有聲音與給定查詢匹配」的錯誤(這看起來沒有問題)。經歷最困難的時間試圖瞭解發生了什麼,任何幫助表示讚賞!
感謝您的回覆,將試用並回復給您 –
您是最棒的。解決了我的問題。謝謝! –
很高興我能幫到你。 –