Как сделать чтоб пользователи сами добавляли отзывы через бот
STATUS_TOP = (
('0', '☁️➖➖➖➖'),
('1', '➖🌥➖➖➖'),
('2', '➖➖⛅️➖➖'),
('3', '➖➖➖🌤➖'),
('4 ', '➖➖➖➖☀️'),
)
class Reviews(models.Model):
user = models.ForeignKey(User, on_delete=models.PROTECT, verbose_name='Аккаунт')
text = models.TextField(max_length=1500, verbose_name='Отзыв', null=True, blank=True, help_text="<xmp><b></b> <i></i> <del></del> <u></u> <code></code> <a href='https://postimages.org'>фото</a></xmp>")
is_public = models.BooleanField(verbose_name='Опубликован', default=False)
date = models.DateTimeField(default=timezone.now, verbose_name='Дата добавления отзыва')
status = models.CharField(max_length=10, choices=STATUS_TOP, verbose_name='Рейтенг')
photo = models.ImageField(verbose_name='Фото', upload_to='uploads/', null=True, blank=True)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
search_fields = ('request_number', 'user__username')
product_category = models.ForeignKey(verbose_name='Категория', to='Category', on_delete=models.PROTECT, null=True)
def __str__(self):
return self.text
class Meta:
verbose_name = 'Отзывы'
verbose_name_plural = 'Отзывы'
ordering = ['-date']
import pytz
@dp.message_handler(text=['комментарии'])
async def send_buy(message: types.Message):
reviews_list = Reviews.objects.filter(is_public=True).all()[:10]
reviews = []
for feedback in reviews_list:
if feedback.user.tg_user_username:
reviews.append(f'<code>{str(feedback.user.tg_user_first_name)}</code> \n🏆 Я оценил как: \n{feedback.get_status_display()} \n📝 <b>{feedback.text}</b> \n➖➖➖➖➖➖➖➖➖➖➖\n')
else:
reviews.append(f'🕵️🆔 <code>{str(feedback.user.tg_user_id)}</code> \n🏆 Я оценил как: \n{feedback.get_status_display()} \n📝 <b>{feedback.text}</b>\n➖➖➖➖➖➖➖➖➖➖➖\n')
if reviews:
aa = '\n\n'.join(reviews)
await message.answer(f'<code></code><b>ВАШИ ОТЗЫВЫ</b>\n➖➖➖➖➖➖➖➖➖➖➖\n\n\n\n{aa}', parse_mode='HTML', disable_web_page_preview=True)
else:
await message.answer(f'Ты ещё не оставлял отзывы!')
Вернуться на верх