user = tb.get_me() # bot.get_me() Если бот объявлен как bot = telbot..
user.is_bot
name = message.from_user.is_bot
Скрипт поставил внизу страницы, потому как это вроде бы считается хорошей практикой. Я тоже первоначально хотел явасксрипт реализовать в блоке анекдота, но получилось громоздко, и я не смог использовать joke.joke_rating вместе с яваскрипт. Поэтому, решил не засорять html-код и поставил скрипт снизу;
joke{{joke.id}}
), а js код вывел в функцию, которую вызывал бы при успешном запросе через реквест/аякс. Более того, добавление нового приложения в аккаунте тоже не даёт ничего нового - бот не работает.
Что в этом плохого? Без этого я бы не смог сделать ограничение.
Пользователь может проголосовать только 1 раз и не сможет изменить голос(такова задумка) это я сделал при помощи условия, которое не скинул.
voter = models.ForeignKey(User, null=True, blank=True, verbose_name='Пользователь',
on_delete=models.PROTECT)
class Choose(models.Model):
colors= [
('black', 'black'),
('white', 'white'),
('purple', 'purple'),
]
variants = models.CharField(choices=colors, max_length=8)
voter = models.OneToOneField(UserAccount, null=True, blank=True, verbose_name='Пользователь',
on_delete=models.PROTECT)
def __str__(self):
return f'{self.variants} - {self.voter}'
{% for variant in value %}
{{ variant.count_purple }}
{% endfor %}
def clean_password2(self):
password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")
if password1 and password2 and password1 != password2:
raise forms.ValidationError(
self.error_messages['password_mismatch'],
code='password_mismatch',
)
return password2
ошибка не вылетает
else:
error = ''
<br>
{% if form.errors %}<br>
{% for field in form %}<br>
{% for error in field.errors %}<br>
<br>
{{ error|escape }}<br>
<br>
{% endfor %}<br>
{% endfor %}<br>
{% for error in form.non_field_errors %}<br>
<br>
{{ error|escape }}<br>
<br>
{% endfor %}<br>
{% endif %}<br>
1. asyncio.sleep(1) не замораживает код.
2. В контексте оригинального вопроса, в котором указано, что нужно в течении 30 секунд добавлять реакции, подход правильный.