【发布时间】:2020-12-21 20:23:14
【问题描述】:
我有问题。当我删除记录时,django 正在删除具有最新 ID 的记录。我不知道为什么,也找不到任何解决方案。我试图将表单操作、url 从 pk 更改为 id 但它不起作用。它总是删除最后记录的未选择的一个。谢谢你的帮助
models.py
class Usterki (models.Model):
id = models.AutoField(primary_key=True)
dodany_przez = models.ForeignKey('auth.User', on_delete = models.CASCADE, null = True)
samolot = models.CharField(
max_length=3,
choices = SAMOLOTY_CHOICES,
default = LFA,
)
usterka = models.CharField(max_length = 200, null = True)
status = models.CharField(
max_length=16,
choices=STATUSY_CHOICES,
default=UNACCEPTED,
)
ograniczenia = models.CharField(
max_length=22,
choices = OGRANICZENIA_CHOICES,
default = ONHOLD,
)
data_dodania = models.DateTimeField(auto_now_add = True)
aktualizacja = models.DateTimeField(auto_now = True)
zdjecie = models.ImageField(upload_to='', null = True)
naprawiona = models.BooleanField(default=False)
def __str__(self):
return self.usterka
views.py
class UsterkaDelete(DeleteView): #poprawić bo nie działa !!!!!
model = Usterki
success_url = reverse_lazy('mojeusterki')
template_name = 'mojeusterki.html'
urls.py
urlpatterns = [
path('', views.index, name='index'),
path('add',views.add, name='add'),
path('usterka_edit/<int:pk>/edit/', views.usterka_edit, name='usterka_edit'),
path('<int:pk>/remove/', views.UsterkaDelete.as_view(), name='usterka_remove'),
path('mojeusterki', views.mojeusterki, name='mojeusterki'),
path('change_password', views.change_password, name='change_password'),
path('fuel', views.fuel, name='fuel'),]
mojeusterki.html
<form action="{% url 'usterka_remove' pk=usterka.pk %}" method="POST">
{% csrf_token %}
<button type="submit" class="btn btn-gradient-danger btn-icon-text">Usuń</button>
【问题讨论】:
-
usterka总是最新的对象吗?你能用删除按钮显示你显示多个项的模板吗? -
它的for循环在表中:'{{%for usterka in uterkis%}} {{usterka.description}} {{%endfor%}}' 当然连续有两个按钮删除和编辑
-
@WillemVanOnsem 有什么建议吗?