Я создал простой вопрос приложений, когда нажимал на вопросы, он показывает свои варианты или варианты. Я сделал логин и формы регистрации, чтобы сделать логин пользователя.
Я хочу знать, как я могу ограничить пользователя в удалении вопросов, созданных только им. У каждого вопроса есть ключ удаления напротив него.
Я прочитал большинство материалов о разрешениях, но не понял, как это сделать.
Я могу применить разрешение не удалять какой-либо вопрос, но как ограничить пользователя, чтобы он не удалял только некоторые конкретные вопросы или вопросы, которые они не создавали.
ниже - views.py
def addquestion(request):
item_to_add = request.POST['content']
item = Question.objects.create(question_text=item_to_add,pub_date=timezone.now())
user_now = Question(user = request.user)
item.save()
return HttpResponseRedirect('/home/questions')
def deletequestion(request,question_id):
item_to_delete = Question.objects.get(id=question_id)
if item_to_delete.user == request.user:
item_to_delete.delete()
else:
return HttpResponse('You are not authorised to delete this question')
Вот модели .py
from django.db import models
from vote.models import VoteModel
from django.contrib.auth.models import User
# Create your models here.
class Question(VoteModel,models.Model):
question_text = models.TextField(max_length=300)
pub_date = models.DateTimeField('date published')
user = models.OneToOneField(User,on_delete = models.CASCADE,null=True)
def __str__(self):
return self.question_text
class Choice(models.Model):
choice_text = models.CharField(max_length=300)
votes = models.IntegerField(default=0)
question = models.ForeignKey(Question,on_delete = models.CASCADE)
def __str__(self):
return self.choice_text