IMHO, это согласно правилу говорит: если два объекта равны, то они должны иметь один и тот же хеш, т. е. равные объекты должны давать равные хэш-значения.
Учитывая выше, значение по умолчанию равно () в Object is ==, который делает сравнение по адресу, hashCode () возвращает адрес в целочисленном (хеш по фактическому адресу), который снова отличается для отдельного объекта.
Если вам нужно использовать пользовательские объекты в хэше Например, если я хочу поддерживать HashSet для объектов Employee, если я не использую более сильный hashCode и равный, я могу в конечном итоге переопределить два разных объекта Employee, это когда я использую возраст как hashCode (), однако я должен использовать уникальное значение, которое может быть идентификатором Employee.
Измените метод __init__
формы и заполните поле choices
поля диапазоном значений от 1 до текущего дня.
from datetime import datetime
class ExtendedRegisterForm(RegisterForm):
pay_month = SelectField()
def __init__(self, *args, **kwargs):
super(ExtendedRegsiterForm, self).__init__(*args, **kwargs)
now = datetime.utcnow()
self.pay_month.choices = [(i, i) for i in range(1, now.day + 1)]
В ваших forms.py
class FRM_LINE_REPORT(exform):
CompanyName = TextField(requiredlabel("Company Name", "*"), [validators.Required()])
В ваших models.py
class MKT_LINE_REPORT(exmodel):
CompanyName = db.Column(db.String(100))
В вашем html или Jinja: # не забывайте форму возврата = FRM_LINE_REPORT () к jinja или html
{{ form.CompanyName(class="form-control", placeholder="Company Name", autocomplete="True") }}