ADD: данные записываются в БД
This commit is contained in:
parent
b449e6f4d9
commit
92aa867e0f
@ -31,6 +31,8 @@ body {
|
||||
font-size: 11pt;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* ЛОГО НА ГЛАВНОЙ СТРАНИЦЕ (и других тоже) */
|
||||
#index-logo {
|
||||
font-family: "Lobster", sans-serif;
|
||||
font-weight: 400;
|
||||
|
@ -34,16 +34,17 @@ class TbPetsClones(models.Model):
|
||||
szPetName = models.CharField(
|
||||
max_length=64,
|
||||
verbose_name="Имя образца",
|
||||
help_text='Имя исходного биологического объекта, с которого изготовлен клон'
|
||||
help_text="Имя исходного биологического объекта, с которого изготовлен клон"
|
||||
)
|
||||
szPetSerNum = models.CharField(
|
||||
max_length=25,
|
||||
max_length=27,
|
||||
db_index=True,
|
||||
unique=True,
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="Серийный номер клонированного питомца",
|
||||
help_text='Можно не заполнять. Номер будет сгенерирован автоматически'
|
||||
verbose_name="Серийный номер",
|
||||
help_text="Серийный номер клонированного питомца<br />"
|
||||
"Можно не заполнять. Номер будет сгенерирован автоматически"
|
||||
)
|
||||
iPetSex = models.SmallIntegerField(
|
||||
default=PetSex.UN,
|
||||
@ -60,7 +61,8 @@ class TbPetsClones(models.Model):
|
||||
max_length=64,
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="Владелец клонированного питомца"
|
||||
verbose_name="Владелец",
|
||||
help_text="Владелец клонированного питомца"
|
||||
)
|
||||
szPetPrice = models.DecimalField(
|
||||
max_digits=10,
|
||||
@ -68,7 +70,8 @@ class TbPetsClones(models.Model):
|
||||
default=random.randint(1000, 10000),
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="Цена клонированного питомца"
|
||||
verbose_name="Цена",
|
||||
help_text="Цена клонированного питомца (в рублях)"
|
||||
)
|
||||
szPetComment = models.TextField(
|
||||
null=True,
|
||||
@ -77,6 +80,12 @@ class TbPetsClones(models.Model):
|
||||
help_text='Дополнительная информация о клоне'
|
||||
|
||||
)
|
||||
bPetIsReg = models.BooleanField(
|
||||
default=True,
|
||||
db_index=True,
|
||||
verbose_name="Регистрация",
|
||||
help_text="Поставьте галочку, если клон нужно зарегистрировать в Минсельхозе и Министерстве здравоохранения"
|
||||
)
|
||||
dtPetCreate = models.DateTimeField(
|
||||
auto_now_add=True, # надо указать False при миграции, после вернуть в True
|
||||
# для выполнения миграций нужно добавлять default, а после она не нужна
|
||||
@ -99,10 +108,10 @@ class TbPetsClones(models.Model):
|
||||
# если имя не задано, то генерируем его
|
||||
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))}-anonymous")
|
||||
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.iPetSex:02d}"
|
||||
f"-{now().strftime('%y%m%d-%H%M%S')}"
|
||||
|
@ -82,13 +82,31 @@ def save_clone(request: HttpRequest) -> HttpResponse:
|
||||
:return response: исходящий http-ответ
|
||||
"""
|
||||
to_template = {
|
||||
"META_REFRESH": "2; url=/add-clone", # автоматический
|
||||
"META_REFRESH": "2; url=/add-clone", # автоматическое перенаправление на новую регистрацию через 2 секунды
|
||||
}
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
print(request.POST['pay'])
|
||||
print(request.POST)
|
||||
except KeyError:
|
||||
pay = request.POST.get('pay')
|
||||
pet_type = request.POST.get('type')
|
||||
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 render(request, template_name="save_data.jinja", context=to_template)
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-6">
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-3">
|
||||
<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"
|
||||
@ -37,10 +37,19 @@
|
||||
</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="input-group mb-3">
|
||||
<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>
|
||||
|
||||
@ -55,7 +64,7 @@
|
||||
|
||||
<div class="col-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>
|
||||
|
Loading…
Reference in New Issue
Block a user