Что в этом плохого? Без этого я бы не смог сделать ограничение.
Пользователь может проголосовать только 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>
С помощью js сначала делал, но понял, что не совсем удобно, если форма, которая ниже не прошла валидацию, то фильтры сбрасываются, я бы хотел, чтобы в GET параметре они сохранились, тем самым и фильтры на местах.
Для сравнения - есть процессор Intel. И больше никаких фирм MSI/ASUS/-Intel. Только Intel.
URL route '' uses parameter name 'id/' which isn't a valid Python identifier.
Еще ~400 можно получить, привязав карточку. В итоге будет 1000 часов, чего на месяц хватит с головой.
Год назад можно было привязать виртуалку qiwi (в моем случае) но, вероятно, подойдут любые - главное чтобы были верифицированы.