Задача: Вывести все посты из таблицы "Post" с только одним условием - "Они должны принадлежать одному адресу (твоему адресу, а все адреса брать из таблицы "Profile")".
Есть три таблицы:
1) User (дефолтная джанговская)
2) Profile
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField('Ваша фотография', default='default.jpg', upload_to='profile_pics')
address = models.CharField('Адрес общежития', blank=True, null=True, max_length=250)
def __str__(self):
return f'{self.user.username} Profile'
3) Post
class Post(models.Model):
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField("Название ордера", max_length=120, help_text='Введите текст поста')
price = models.FloatField("Стоимость всей еды", default=0)
price_deliver = models.FloatField("Стоимость доставки", default=0)
date_deliver = models.DateField("Дата ордера", default=timezone.now)
time_deliver = models.TimeField("Время ордера", default='17:30:00')
cnt_people = models.IntegerField("Количество людей", default=2, help_text='Минимум 2, включая вас')
image = models.ImageField(
'Картинка',
upload_to='posts_pics/',
blank=True,
null=True
)
mod = models.CharField('Мод ордера', blank=True, null=True, max_length=250)
Я пытался это сделать так:
class PostListView(ListView):
model = Post
template_name = 'main/main.html'
context_object_name = 'posts'
def get_queryset(self):
user = get_object_or_404(Profile, address=self.kwargs.get('address'))
queryset = Post.objects.filter(author=user).order_by('-date_posted')
return queryset
Но у меня ничего не вышло. Нужно писать запрос как-то по другому, но у меня не хватает опыта и знаний, сижу уже несколько часов на этим
помогите пж написать норм запрос)