在學校項目上工作。我正嘗試僅通過登錄並創建它的人員刪除郵件。我希望其他用戶看到它們,但只有創建者才能刪除它。我有代碼將刪除數據庫中的所有內容。我研究並發現Mysecret.objects.filter(id = request.session ['user_id']).delete()應該可以工作,但是當我這樣做時,頁面不會刪除任何內容,只是刷新頁面。用django通過id刪除對象
我只會發布視圖和模型,因爲我知道其他所有的工作。我認爲它只是我不能確定的格式。
因此,我得到的現在是我的我的消息ID是secret.id,我有創造者ID是secret.creator.id和會話ID request.session ['user_id']。 我怎麼做比較它們只刪除THA tmessage
Views.py
from django.shortcuts import render, redirect
from . models import Mysecret
from ..logReg.models import User
# Create your views here.
def index(request):
context = {
"secret": Mysecret.objects.all(),
}
return render(request, 'secretdojo/index.html', context)
def create(request):
secreteid= User.objects.get(id=request.session['user_id'])
Mysecret.objects.create(secret=request.POST['message'], creator=secreteid)
return redirect('secretdojo:index')
def removesecret(request):
Mysecret.objects.filter(id=request.session['user_id']).delete()
return redirect('secretdojo:index')
def topsecret(request):
context = {
}
return redirect('/')
model.py
from __future__ import unicode_literals
from django.db import models
from ..logReg.models import User
class Mysecret(models.Model):
secret = models.CharField(max_length =500)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
loguser = models.ManyToManyField(User, related_name='loguser')
creator = models.ForeignKey(User, related_name='creator')
用戶模型的外鍵部分:
class User(models.Model):
first_name = models.CharField(max_length = 50)
last_name = models.CharField(max_length = 50)
email = models.CharField(max_length = 100)
password = models.CharField(max_length =100)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
objects = UserManager()
請發帖我的祕密模型 –
如果'creator'包含創建者,那麼爲什麼你要比較用戶和'id'? –
ta是我的seceret模型 –