#django
#django
Вопрос:
Я только начал свое путешествие с django. Форма отображается на странице, ввод данных работает хорошо, но данные не попадают в базу данных. Форма касается системы регистрации на странице.
models.py:
from django.db import models
from datetime import date
class Users(models.Model):
login = models.CharField(max_length=30)
password = models.CharField(max_length=30)
mail = models.CharField(max_length=40)
create_date = models.DateTimeField(default = date.today(), blank=True)
forms.py:
from django import forms
from .models import Users
class Register(forms.ModelForm):
password = forms.CharField(max_length=32, min_length = 8, widget=forms.PasswordInput)
login = forms.CharField(min_length=4, max_length=30)
mail = forms.EmailField()
class Meta:
model = Users
fields = ['login','password','mail']
register.html:
{% extends 'base.html' %}
{% block content %}
<div id="form-user">
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="SAVE" />
</form>
</div>
{% endblock %}
views.py:
from django.shortcuts import render
from .forms import Register
from .models import Users
def register(request):
if request.method == "POST":
form = Register(request.POST)
if form.is_valid():
form.save(commit = True)
form = Register()
form = Register()
return render(request, "register.html", {'form': form})
Ответ №1:
Проблема заключается в вашем views.py .Вы можете попробовать:
from django.shortcuts import render,redirect
from .forms import Register
from .models import Users
def register(request):
if request.method == "POST":
form = Register(request.POST)
if form.is_valid():
form.save(commit=False)
form.save()
return redirect('/') #redirect after saving
form = Register()
return render(request, "register.html", {'form': form})
Комментарии:
1. Хорошо, теперь, по крайней мере, я знаю, что происходит. Я не вижу никаких данных в БД с помощью панели администратора, но оболочка python показывает объекты Users.objects.all(). Итак, я предполагаю, что я что-то перепутал с настройками или моя база данных сохраняется где-то в другом месте.
2. Вы должны зарегистрировать свою модель пользователей в django admin.py вашего приложения, чтобы увидеть данные
3. Правильное решение, я забыл отредактировать admin.py . Спасибо.