所以,我在删除django项目数据库中的对象时遇到了问题。我的models.py文件中有一个模型,如下所示。
class Myteam(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
QB = models.CharField(max_length=80, null=True)
QBscore = models.IntegerField(null=True)
RB1 = models.CharField(max_length=80, null=True)
RB1score = models.IntegerField(null=True)
RB2 = models.CharField(max_length=80, null=True)
RB2score = models.IntegerField(null=True)
WR = models.CharField(max_length=80, null=True)
WR1score = models.IntegerField(null=True)
WR2 = models.CharField(max_length=80, null=True)
WR2score = models.IntegerField(null=True)
TE = models.CharField(max_length=80, null=True)
TEscore = models.IntegerField(null=True)
D = models.CharField(max_length=80, null=True)
Dscore = models.IntegerField(null=True)
K = models.CharField(max_length=80, null=True)
Kscore = models.IntegerField(null=True)
我希望能够删除此模型中的信息。在我的项目中,我将这个模型的信息显示在一个类似于这个table/html的表中。我的目标是单击"drop“按钮并删除该行信息。我一直在遵循一些关于为我的views.py创建删除功能的教程和建议,但我不能让它工作。这看起来很简单,但我不确定我错在哪里。这是我的views.py和urls.py
def delete_player(request, id):
player = Myteam.objects.get(id=id)
#print(player.id)
player.delete()
return redirect('index')
path('delete_player/<int:id>', views.delete_player, name="delete_player")
这是我的html。
<form action="" method="POST">
{% csrf_token %}
<table style="border: 1px solid black;">
<tr>
<td style="border: 1px solid black;">QB</td>
<th style="border: 1px solid black;">{{ team.QB }} <a href="{% url 'delete_player'
id=player.id %}"></a><button id="delete_button">Drop</button></a> </th>
<th style="border: 1px solid black;"></th>
<th style="border: 1px solid black;">{{ QBscore }}</th>
<th style="border: 1px solid black;"></th>
</tr>
</form>
发布于 2020-11-19 04:01:26
有很多方法可以做到这一点。一种更好的方法是创建另一个视图,该视图从数据库中删除对象。
在我看来,你已经有了一个表单,现在,在下拉按钮中,给它一个与你的模型对象相同的id。通过一些前端的javascript,你可以放置一些事件监听器,比如onclick。当有人单击该按钮时,事件侦听器函数应该运行,并通过ajax将数据发送到该视图,在该视图中数据库对象将被删除。在ajax中,你应该发布id和csrf令牌...
我应该在这里举个例子,但我现在没有。
发布于 2020-11-19 09:01:15
我想你在删除对象后忘记保存数据库了。
player.save()
https://stackoverflow.com/questions/64905152
复制相似问题