ADD: данные записываются в БД
This commit is contained in:
parent
b449e6f4d9
commit
92aa867e0f
@ -31,6 +31,8 @@ body {
|
|||||||
font-size: 11pt;
|
font-size: 11pt;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ЛОГО НА ГЛАВНОЙ СТРАНИЦЕ (и других тоже) */
|
||||||
#index-logo {
|
#index-logo {
|
||||||
font-family: "Lobster", sans-serif;
|
font-family: "Lobster", sans-serif;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
@ -34,16 +34,17 @@ class TbPetsClones(models.Model):
|
|||||||
szPetName = models.CharField(
|
szPetName = models.CharField(
|
||||||
max_length=64,
|
max_length=64,
|
||||||
verbose_name="Имя образца",
|
verbose_name="Имя образца",
|
||||||
help_text='Имя исходного биологического объекта, с которого изготовлен клон'
|
help_text="Имя исходного биологического объекта, с которого изготовлен клон"
|
||||||
)
|
)
|
||||||
szPetSerNum = models.CharField(
|
szPetSerNum = models.CharField(
|
||||||
max_length=25,
|
max_length=27,
|
||||||
db_index=True,
|
db_index=True,
|
||||||
unique=True,
|
unique=True,
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
verbose_name="Серийный номер клонированного питомца",
|
verbose_name="Серийный номер",
|
||||||
help_text='Можно не заполнять. Номер будет сгенерирован автоматически'
|
help_text="Серийный номер клонированного питомца<br />"
|
||||||
|
"Можно не заполнять. Номер будет сгенерирован автоматически"
|
||||||
)
|
)
|
||||||
iPetSex = models.SmallIntegerField(
|
iPetSex = models.SmallIntegerField(
|
||||||
default=PetSex.UN,
|
default=PetSex.UN,
|
||||||
@ -60,7 +61,8 @@ class TbPetsClones(models.Model):
|
|||||||
max_length=64,
|
max_length=64,
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
verbose_name="Владелец клонированного питомца"
|
verbose_name="Владелец",
|
||||||
|
help_text="Владелец клонированного питомца"
|
||||||
)
|
)
|
||||||
szPetPrice = models.DecimalField(
|
szPetPrice = models.DecimalField(
|
||||||
max_digits=10,
|
max_digits=10,
|
||||||
@ -68,7 +70,8 @@ class TbPetsClones(models.Model):
|
|||||||
default=random.randint(1000, 10000),
|
default=random.randint(1000, 10000),
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
verbose_name="Цена клонированного питомца"
|
verbose_name="Цена",
|
||||||
|
help_text="Цена клонированного питомца (в рублях)"
|
||||||
)
|
)
|
||||||
szPetComment = models.TextField(
|
szPetComment = models.TextField(
|
||||||
null=True,
|
null=True,
|
||||||
@ -77,6 +80,12 @@ class TbPetsClones(models.Model):
|
|||||||
help_text='Дополнительная информация о клоне'
|
help_text='Дополнительная информация о клоне'
|
||||||
|
|
||||||
)
|
)
|
||||||
|
bPetIsReg = models.BooleanField(
|
||||||
|
default=True,
|
||||||
|
db_index=True,
|
||||||
|
verbose_name="Регистрация",
|
||||||
|
help_text="Поставьте галочку, если клон нужно зарегистрировать в Минсельхозе и Министерстве здравоохранения"
|
||||||
|
)
|
||||||
dtPetCreate = models.DateTimeField(
|
dtPetCreate = models.DateTimeField(
|
||||||
auto_now_add=True, # надо указать False при миграции, после вернуть в True
|
auto_now_add=True, # надо указать False при миграции, после вернуть в True
|
||||||
# для выполнения миграций нужно добавлять default, а после она не нужна
|
# для выполнения миграций нужно добавлять default, а после она не нужна
|
||||||
@ -99,10 +108,10 @@ class TbPetsClones(models.Model):
|
|||||||
# если имя не задано, то генерируем его
|
# если имя не задано, то генерируем его
|
||||||
self.szPetName = (f"{chr(random.randint(65, 90))}"
|
self.szPetName = (f"{chr(random.randint(65, 90))}"
|
||||||
f"{chr(random.randint(65, 90))}"
|
f"{chr(random.randint(65, 90))}"
|
||||||
f"{chr(random.randint(65, 90))}")
|
f"{chr(random.randint(65, 90))}-anonymous")
|
||||||
if not self.pk:
|
if not self.pk:
|
||||||
# если объект новый, то генерируем серийный номер
|
# если объект новый, то генерируем серийный номер
|
||||||
self.szPetSerNum = (f"{pytils.translit.slugify(self.szPetName)[:3].upper()}"
|
self.szPetSerNum = (f"{str(pytils.translit.slugify(self.szPetName)[:3].upper())}"
|
||||||
f"-{self.iPetType:02d}"
|
f"-{self.iPetType:02d}"
|
||||||
f"-{self.iPetSex:02d}"
|
f"-{self.iPetSex:02d}"
|
||||||
f"-{now().strftime('%y%m%d-%H%M%S')}"
|
f"-{now().strftime('%y%m%d-%H%M%S')}"
|
||||||
|
@ -82,13 +82,31 @@ def save_clone(request: HttpRequest) -> HttpResponse:
|
|||||||
:return response: исходящий http-ответ
|
:return response: исходящий http-ответ
|
||||||
"""
|
"""
|
||||||
to_template = {
|
to_template = {
|
||||||
"META_REFRESH": "2; url=/add-clone", # автоматический
|
"META_REFRESH": "2; url=/add-clone", # автоматическое перенаправление на новую регистрацию через 2 секунды
|
||||||
}
|
}
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
try:
|
try:
|
||||||
print(request.POST['pay'])
|
pay = request.POST.get('pay')
|
||||||
print(request.POST)
|
pet_type = request.POST.get('type')
|
||||||
except KeyError:
|
pet_sex = request.POST.get('sex')
|
||||||
|
pet_is_alive = True if 'is-alive' in request.POST else False
|
||||||
|
pet_reg = False if 'noreg' in request.POST else True
|
||||||
|
pet_name = request.POST.get('name')
|
||||||
|
pet_note = request.POST.get('note')
|
||||||
|
pet_owner = None if request.POST.get('owner') == "" else request.POST.get('owner')
|
||||||
|
pet = TbPetsClones(
|
||||||
|
iPetType=int(pet_type),
|
||||||
|
szPetName=pet_name,
|
||||||
|
iPetSex=int(pet_sex),
|
||||||
|
bPetIsAlive=pet_is_alive,
|
||||||
|
szPetOwner=pet_owner,
|
||||||
|
szPetPrice=int(pay),
|
||||||
|
szPetComment=pet_note,
|
||||||
|
bPetIsReg=pet_reg
|
||||||
|
)
|
||||||
|
pet.save()
|
||||||
|
|
||||||
|
except (KeyError, ValueError, TypeError):
|
||||||
return HttpResponseRedirect('/add-clone')
|
return HttpResponseRedirect('/add-clone')
|
||||||
return render(request, template_name="save_data.jinja", context=to_template)
|
return render(request, template_name="save_data.jinja", context=to_template)
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6">
|
<div class="col-4">
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-paw"></i></span>
|
<span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-paw"></i></span>
|
||||||
<input type="text" class="form-control" placeholder="имя питомца с которого сделан клон" aria-label="name"
|
<input type="text" class="form-control" placeholder="имя питомца с которого сделан клон" aria-label="name"
|
||||||
@ -37,10 +37,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-5">
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-person"></i></span>
|
||||||
|
<input type="text" class="form-control" placeholder="заказчик (хозяин питомца)" aria-label="owner"
|
||||||
|
name="owner">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-9">
|
<div class="col-9">
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-comment mb-5 pb-5"></i></span>
|
<span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-comment mb-5 pb-5"></i></span>
|
||||||
<textarea class="form-control" aria-label="note" rows="6" name="note"></textarea>
|
<textarea class="form-control" aria-label="note" rows="6" placeholder="заметки"
|
||||||
|
name="note"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -55,7 +64,7 @@
|
|||||||
|
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<div class="form-check pt-3 mb-3">
|
<div class="form-check pt-3 mb-3">
|
||||||
<input class="form-check-input" type="checkbox" value="1" id="reg">
|
<input class="form-check-input" type="checkbox" value="1" id="noreg" name="noreg">
|
||||||
<label class="form-check-label" for="flexCheckDefault">
|
<label class="form-check-label" for="flexCheckDefault">
|
||||||
Без регистрации
|
Без регистрации
|
||||||
</label>
|
</label>
|
||||||
|
Loading…
Reference in New Issue
Block a user