Как красиво обработать посты с группой, посты без группы и не созданные группы?
Есть следующий код:
models.py
class Group(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=50, unique=True)
description = models.TextField(max_length=1000)
class Post(models.Model):
text = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
group = models.ForeignKey(Group, on_delete=models.SET_NULL, blank=True, null=True)
views.py
def group(request, slug):
if slug == 'no-group':
group = None
else:
group = get_object_or_404(Group, slug=slug)
posts = Post.objects.filter(group=group)
context = {
'group': group,
'posts': posts[:5],
}
return render(request, 'group.html', context)
Реакции которой я пытаюсь добиться:
- Если группа существует -> показываем посты группы
- Если группа не существует -> ошибка 404
- Если пост без группы (no-group) -> показываем посты без группы
Данный код работает но кажется мне очень не оптимальным. Есть идеи как его улучшить? Спасибо!