Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 27.09.2016
Сообщений: 74
1

Не сохраняется информация в базу данных

26.03.2019, 19:29. Показов 3249. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Все работало пока я не захотел все красиво оформить. Ошибок никаких не выводит. И как выровнить форму загрузки ?

/////////////////////////////html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{% extends "mainApp/wrapper.html" %}
 
 
{% block content %}
<div class="container body-content">
<div class=vniz>
<h1>Регистрация</h1>
<hr>
<p class="lead">Заполните все поля</p>
<div>
  <form action="" method="post" enctype="multipart/form-data" class="form-inline text-center">{% csrf_token %}
    <div class="row">
     <div class="col">
       <p><td class="survey__image"><img class="survey__image-pic" src="https://avatars.mds.yandex.net/get-forms/1534616/866a6af08d1a58cb41fd83d11288aec2/720x" srcset="https://avatars.mds.yandex.net/get-forms/1534616/866a6af08d1a58cb41fd83d11288aec2/1280x 2x"></td>
       {{form.photo}}</p>
 
<p><input type="email" email="{{form.email.email}}" class="form-control" placeholder="email">
<input type="text" name="{{form.name.name}}" class="form-control" placeholder="Имя">
<input type="text" surname="{{form.surname.surname}}" class="form-control" placeholder="Фамилия">
<input type="text" patronymic="{{form.patronymic.patronymic}}" class="form-control" placeholder="Отчество"></p>
<p><input type="text" specialty="{{form.specialty.specialty}}" class="form-control" placeholder="Специальность (Код)">
<input type="text" floor="{{form.floor.floor}}" class="form-control" placeholder="Пол M/Ж">
<input type="text" dob="{{form.dob.dob}}" class="form-control" placeholder="Дата рождения г-м-д">
<input type="text" nationality="{{form.nationality.nationality}}" class="form-control" placeholder="Национальность"></p>
<p><textarea cols=47 rows=4  type="text" bpl="{{form.bpl.bpl}}" class="form-control" placeholder="Место рождения"></textarea>
<textarea cols=47 rows=4 type="text" job="{{form.job.job}}" class="form-control" placeholder="Работа до поступления (где, в качестве кого) "></textarea></p>
<p><textarea cols=47 rows=4 type="text" education="{{form.education.education}}" class="form-control" placeholder="Образование(где, когда и кем)"></textarea>
<textarea cols=47 rows=4 type="text" marital_status="{{form.marital_status.marital_status}}" class="form-control" placeholder="Семейное положение (холост, женат, замужем, количество детей)"></textarea></p>
<p><textarea cols=47 rows=4 type="text" father="{{form.father.father}}" class="form-control" placeholder="Сведенье об отце"></textarea>
<textarea cols=47 rows=4 type="text" mother="{{form.mother.mother}}" class="form-control" placeholder="Сведенье об матери"></textarea></p>
<p><input type="text" address="{{form.address.address}}" class="form-control" placeholder="Домашний адрес">
<input type="text" the_address_of_this="{{form.the_address_of_this.the_address_of_this}}" class="form-control" placeholder="Прописка в нас-шее время">
<input type="number" number="{{form.number.number}}" class="form-control" placeholder="Телефон">
<input type="password" password="{{form.password.password}}" class="form-control" placeholder="Пароль"></p>
      </div>
<button type="submit" class="btn btn-primary btn-large">Отправить »</button >
  </form>
  </div>
</div>
</div>
</div>
 
{% endblock %}
////////////////////////////////////////models.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from django.db import models
 
class Personalcard(models.Model):
    photo =  models.ImageField(blank=True, upload_to='mainApp/static/images/%Y/%m/%d', verbose_name='Фото' )
    email = models.EmailField(verbose_name='email')
    name = models.CharField(max_length=50, verbose_name='Имя')
    surname = models.CharField(max_length=50, verbose_name='Фамилия')
    patronymic = models.CharField(max_length=50, verbose_name='Отчество')
    specialty = models.CharField(max_length=50, verbose_name='Специальность',)
    floor = models.CharField(max_length=50, verbose_name='Пол')
    dob = models.DateField(verbose_name='Дата рождения')
    nationality = models.CharField(max_length=50, verbose_name='Национальность')
    bpl = models.CharField(max_length=50, verbose_name='Место рождения')
    education = models.CharField(max_length=150, verbose_name='Образование')
    job = models.CharField(max_length=150, verbose_name='Вып-ая работа до поступления')
    marital_status = models.CharField(max_length=50, verbose_name='Семейное положение')
    father = models.CharField(max_length=150, verbose_name='Сведенье об отце' )
    mother = models.CharField(max_length=150, verbose_name='Сведенье об матери')
    address = models.CharField(max_length=150, verbose_name='Домашний адрес')
    the_address_of_this = models.CharField(max_length=150, verbose_name='Прописка в н время')
    number = models.BigIntegerField(verbose_name='Номер телефона')
    password = models.CharField(max_length=50 ,verbose_name='Пароль')
 
 
    def __str__(self):
        return "%s %s %s" %(self.name, self.surname, self.patronymic)
////////////////////////////////////////froms.py

Python
1
2
3
4
5
6
7
8
from django import forms
from .models import *
 
class PersonalcardForm(forms.ModelForm):
 
    class Meta:
        model = Personalcard
        exclude = [""]
////////////////////////////////////views.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from django.shortcuts import render
from .forms import PersonalcardForm
 
def index(request):
    return render(request, 'mainApp/homePage.html')
 
def login(request):
    return render(request, 'mainApp/login.html')
 
def registration(request):
    if request.method == "POST":
        form = PersonalcardForm(request. POST or None, request.FILES)
        if form.is_valid():
            form.save()
    else:
        form = PersonalcardForm()
 
 
 
 
 
    return render(request, 'mainApp/registration.html', locals())
Миниатюры
Не сохраняется информация в базу данных  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2019, 19:29
Ответы с готовыми решениями:

Изображение не сохраняется в базу данных
Я использую mysql. Пытаюсь сохранить картинку в базу, вот код: if($_FILES==0&amp;&amp;$_POST){...

Информация не отправляется в базу данных
Здравствуйте, помогите решить проблему, раньше это делал в лёгкую, сейчас не могу понять в чём...

Не отправляется информация с сайта в базу данных
Добрый день форумчане, прошу помогите, сам не смог разобраться, выскакивает следующая ошибка: ...

Не добавляется информация в базу данных через форму
При добавлении товара в базу, пишет: &quot;Товар успешно добавлен&quot;. Но ничего не добавляется. форма...

Создать базу данных, в которой будет храниться информация о продаже товаров
Можете помоч очень сильно надо, но нам не обьясняют блин нефига на уроках нечего, приходится все...

13
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
26.03.2019, 19:45 2
_ZombiE_, поставьте breakpoint на
Python
1
form = PersonalcardForm(request. POST or None, request.FILES)
и
Python
1
        if form.is_valid():
И посмотрите, что вам приходит в request.POST, и валидируется ли форма. Либо если работаете без отладчика, поставьте
print request.POST и print form.is_valid() и посмотрите, что выдаст консоль при сохранении
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
26.03.2019, 19:49 3
_ZombiE_, я так формы никогда не реализовую. Писать их через хтмл - плохая практика.
Посмотрите, что Вам прилетает в request.POST для начала в функцию.
Вам, скорее всего, теперь вручную придётся вытаскивать данные из полей и сохранять.
0
102 / 75 / 38
Регистрация: 08.11.2017
Сообщений: 272
26.03.2019, 19:59 4
_ZombiE_, у вас в HTML беда, да собственно сам подход хреновый это в HTML всё делать.
В HTML вы вместо name у каждого атрибута, зачем то добавляете новое поле с именем инпута.

Должно быть что-то типа этого:
HTML5
1
2
3
4
<p><input type="email" name="email" class="form-control" placeholder="email">
<input type="text" name="name" class="form-control" placeholder="Имя">
<input type="text" name=" surname" class="form-control" placeholder="Фамилия">
<input type="text" name="patronymic" class="form-control" placeholder="Отчество"></p>
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
26.03.2019, 20:09 5
Цитата Сообщение от kratorr Посмотреть сообщение
Должно быть что-то типа этого:
HTML5
1
2
3
4
5
6
7
<form action="" method="post" enctype="multipart/form-data">
  {% csrf_token %}
  {{ form.email }}
  {{ form.name }}
  {{ form.surname }}
  <input type="submit" value="отправить">
</form>
0
102 / 75 / 38
Регистрация: 08.11.2017
Сообщений: 272
26.03.2019, 20:13 6
m0nte-cr1st0, и что вы хотели этим сказать? я привел пример к конкретному случаю.
Давайте тогда уж так:
HTML5
1
2
3
4
5
  <form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Отправить ">
</form>
0
1 / 1 / 0
Регистрация: 27.09.2016
Сообщений: 74
26.03.2019, 21:00  [ТС] 7
А разве можно также все формы красиво расставить не через Html

Добавлено через 5 минут
Если я так напишу у меня разве в базу данных будет все сохранятся

Добавлено через 1 минуту
Цитата Сообщение от kratorr Посмотреть сообщение
у вас в HTML беда, да собственно сам подход хреновый это в HTML всё делать.
А не используя html можно ли расставить также красиво все формы как на картинке

Добавлено через 14 минут
Спасибо всем кто писал я нашел ошибку

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{% extends "mainApp/wrapper.html" %}
{% block content %}
<div class="container body-content">
  <div class="vniz">
    <h1>Регистрация</h1> <hr>
 
    <p class="lead">Заполните все поля</p><div>
  <div class="jumbotron">
    <form action="" method="post" enctype="multipart/form-data" class="form-inline text-center">{% csrf_token %}
      <div class="row">
        <div class="col">
          <p><td class="survey__image"><img class="survey__image-pic" src="https://avatars.mds.yandex.net/get-forms/1534616/866a6af08d1a58cb41fd83d11288aec2/720x" srcset="https://avatars.mds.yandex.net/get-forms/1534616/866a6af08d1a58cb41fd83d11288aec2/1280x 2x"></td>{{form.photo}}</p>
 
<p><input type="text" name="{{form.grup.name}}" class="form-control" placeholder="Группа">
<input type="text" name="{{form.name.name}}" class="form-control" placeholder="Имя">
<input type="text" name="{{form.surname.name}}" class="form-control" placeholder="Фамилия">
<input type="text" name="{{form.patronymic.name}}" class="form-control" placeholder="Отчество"></p>
 
<p><input type="text" name="{{form.specialty.name}}" class="form-control" placeholder="Специальность (Код)">
<input type="text" name="{{form.floor.name}}" class="form-control" placeholder="Пол M/Ж">
<input type="text" name="{{form.dob.name}}" class="form-control" placeholder="Дата рождения г-м-д">
<input type="text" name="{{form.nationality.name}}" class="form-control" placeholder="Национальность"></p>
 
<p><textarea cols=47 rows=4  type="text" name="{{form.bpl.name}}" class="form-control" placeholder="Место рождения"></textarea>
<textarea cols=47 rows=4 type="text" name="{{form.job.name}}" class="form-control" placeholder="Работа до поступления (где, в качестве кого) "></textarea></p>
 
<p><textarea cols=47 rows=4 type="text" name="{{form.education.name}}" class="form-control" placeholder="Образование(где, когда и кем)"></textarea>
<textarea cols=47 rows=4 type="text" name="{{form.marital_status.name}}" class="form-control" placeholder="Семейное положение (холост, женат, замужем, количество детей)"></textarea></p>
 
<p><textarea cols=47 rows=4 type="text" name="{{form.father.name}}" class="form-control" placeholder="Сведенье об отце"></textarea>
<textarea cols=47 rows=4 type="text" name="{{form.mother.name}}" class="form-control" placeholder="Сведенье об матери"></textarea></p>
 
<p><textarea cols=47 rows=4 type="text" name="{{form.address.name}}" class="form-control" placeholder="Домашний адрес"></textarea>
<textarea cols=47 rows=4 type="text" name="{{form.the_address_of_this.name}}" class="form-control" placeholder="Прописка в нас-шее время "></textarea></p>
 
<p><input type="number" name="{{form.number.name}}" class="form-control" placeholder="Телефон">
<input type="email" name="{{form.email.name}}" class="form-control" placeholder="Email">
<input type="password" name="{{form.password.name}}" class="form-control" placeholder="Пароль"></p></div>
 
<button type="submit" class="btn btn-primary btn-large">Отправить »</button >
  </form>
  </div>
  </div>
</div>
</div>
</div>
 
{% endblock %}
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
26.03.2019, 21:47 8
Лучший ответ Сообщение было отмечено _ZombiE_ как решение

Решение

Цитата Сообщение от _ZombiE_ Посмотреть сообщение
А разве можно также все формы красиво расставить не через Html
можно.
https://djbook.ru/rel1.9/ref/forms/widgets.html
1
1 / 1 / 0
Регистрация: 27.09.2016
Сообщений: 74
26.03.2019, 21:52  [ТС] 9
осталось
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
Спасибо но уже лень переделывать и мозгов мне не хватит ))))

Добавлено через 2 минуты
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
можно.
Я хотел спроситб почему при переходе по страницам в адресной строке все пробавляется http://127.0.0.1:8000/registra... gistration как сделать чтобы сайт удалял и переходил по новой а не прибавлял
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
26.03.2019, 21:57 10
_ZombiE_, покажите код с url

Добавлено через 1 минуту
и шаблон, с которого вы переходите по этому url
1
1 / 1 / 0
Регистрация: 27.09.2016
Сообщений: 74
26.03.2019, 22:05  [ТС] 11
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
и шаблон, с которого вы переходите по этому url
/////////////////////////urls.py

Python
1
2
3
4
5
6
7
8
9
10
from django.contrib import admin
from django.urls import path, include
from . import views
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),
    path('index', views.index, name='index'),
    path('registration/', views.registration, name='registration'),
    path('login/', views.login, name='login'),
///////////////////////////////////html Шаблон это главный html файл ?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
</head>
<body>
 
  <header class="main-header">
         <div class="container">
            <div class="header-content">
               <a href="index">
                  <img src="{% static 'images/site-identity.png' %}" alt="site identity">
               </a>
               <nav class="site-nav">
                  <ul class="clean-list site-links">
                     <li>
                        <a href="index">Home</a>
                     </li>
                  </ul>
 
                  <a href="login" class="btn btn-outlined">Вход</a>
                  <a>&nbsp; &nbsp; &nbsp;</a>
                  <a href="registration" class="btn btn-outlined">Регистрация</a>
               </nav>
            </div>
         </div>
      </header>
{% block content %}
 
{% endblock %}
 
 
  <div class="container">
    <hr>
    &copy; Кривой студент ) все права защищены 2019
  </div>
 
</body>
</html>
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
26.03.2019, 22:10 12
Цитата Сообщение от _ZombiE_ Посмотреть сообщение
<a href="registration" class="btn btn-outlined">Регистрация</a>
Не нужно так писать. Нужно обращаться по имени к url.
Python
1
<a href="{% url 'registration' %}" class="btn btn-outlined">Регистрация</a>
либо так
Python
1
<a href="/registration/" class="btn btn-outlined">Регистрация</a>
заодно и в логине исправьте.
1
1 / 1 / 0
Регистрация: 27.09.2016
Сообщений: 74
26.03.2019, 22:38  [ТС] 13
Помогло но теперь переходя по любой ссылке http://127.0.0.1:8000/login/index ко всему прилепает http://127.0.0.1:8000/login/registration логин login
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
26.03.2019, 22:51 14
Цитата Сообщение от _ZombiE_ Посмотреть сообщение
Помогло но теперь переходя по любой ссылке http://127.0.0.1:8000/login/index ко всему прилепает http://127.0.0.1:8000/login/registration логин login
может, у Вас в главном urls.py есть url с login, который и ссылается на это приложение?
1
26.03.2019, 22:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2019, 22:51
Помогаю со студенческими работами здесь

Не сохраняется информация о BSOD
За сегодня было 6 синих экранов, сохранился только один из них (не последний). &quot;отказ системы -...

Информация в DataGridView не сохраняется в БД
Создал DataGridView1, привязал к ней таблицу из sql server 2012, изменяю данные в таблице а она в...

Не сохраняется информация на сайте
Дали задание, в котором ничего не понимаю - редактировать информацию на сайте. Зашел как админ, все...

Не сохраняется информация из полей в БД
Есть окно, где идет заполнение информации о новом документе. При нажатии кнопки сохранить, вся...

Как сделать чтобы при включении компьютера информация считывалась в базу данных о времени включениия
Как сделать чтобы при включении компьютера информация считывалась в базу данных о времени включения...

Измененная информация в BIOS не сохраняется
Измененная информация в BIOS не сохраняется При нажатии «F10 — да, сохранить» измененная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru