Как сделать, чтобы отображались записи пользователя, созданные только им. DJANGO
Как сделать, чтобы отображались записи пользователя, созданные только им. У меня в проекте реализована регистрация. Как сделать, чтобы авторизованный пользователь видел, только записи, которые были созданы им.
Реализовал некоторый код, у него есть главный минус, пользователь должен сам выбрать пользователя, которой создал эту запись. Как сделать, чтобы автоматически выбирался зарегистрированный пользователь.
Извиняюсь, за плохую формулировку. Спасибо за любую помощь.
class Tasks(models.Model):
title = models.CharField(max_length=75, verbose_name="Заголовок")
content = models.TextField(verbose_name="Описание задачи")
is_done = models.BooleanField(verbose_name='Выполнено?', default=False)
created = models.DateTimeField(auto_now_add=True, verbose_name="Время создания")
updated = models.DateTimeField(auto_now_add=True, verbose_name="Время обновления")
category = models.ForeignKey('Category', on_delete=models.PROTECT, blank=True, verbose_name='Категория', null=True)
account = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Пользователь', null=True, blank=True)
def get_absolute_url(self):
return reverse_lazy('view_task', kwargs={'pk': self.pk})
def __str__(self):
return self.title
class Meta:
verbose_name_plural = "Задания"
ordering = ['created']
class Category(models.Model):
title = models.CharField(max_length=30, db_index=True, verbose_name="Название категории")
def __str__(self):
return self.title
class Meta:
verbose_name_plural = "Категории"
class ProfilePageView(ListView):
template_name = 'main/profile.html'
context_object_name = 'tasks'
paginate_by = 4
model = Tasks
def get_queryset(self):
return Tasks.objects.filter(is_done=False, account=self.request.user)
class TaskForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['category'].empty_label = "Не выбрано"
class Meta:
model = Tasks
fields = ['title', 'content', 'category', 'account']
Источник: Stack Overflow на русском