быстрый вопрос
У меня есть приложение, в котором пользователи могут создавать группы для своих друзей, после добавления некоторых я хотел бы оставить такие функции, как delete
или update
, только для пользователя, создавшего группу. Кто-нибудь может помочь? Мое решение до сих пор жестко запрограммировано, если я добавлю конкретный идентификатор человека, только этот пользователь может удалить группу, но я хотел бы иметь более универсальное решение.
views.py
class TripDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):
model = Trip
success_url = '/'
template_name = 'tripplanner/delete_trip_confirm.html'
def test_func(self):
detailView = self.get_object()
# Correct, not hardcode
if self.request.user == detailView.profile.get(pk=2):
return True
return False
models.py
class Trip(models.Model):
...
profile = models.ManyToManyField(User, related_name='profile_groups')
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
...