Вот мой код:
Мой forms.py выглядит так:
from django import forms
class SimpleForm(forms.Form):
website = forms.URLField(required=True,
widget=forms.TextInput(
attrs = {'placeholder': "http://www.example.com"}))
email = forms.EmailField(required=True,
widget=forms.TextInput(
attrs = {'type': 'email',
'placeholder': "[email protected]"
}))
Мой views.py выглядит так:
from django.shortcuts import render, redirect
from django.template import loader
from .forms import SimpleForm
def simple_form(request):
if request.method == 'POST':
form = SimpleForm(request.POST)
if form.is_valid():
website = form.cleaned_data['website']
email = form.cleaned_data['email']
return render(request, 'some_page.html')
else:
form = SimpleForm()
return render(request, 'some_other_page.html', {'form': form})
Что касается моей HTML-формы, она выглядит следующим образом:
<form method = "post">
{% csrf_token %}
<div class = "some-class">
<label for = "website">Enter Your Site:</label>
<!-- <input type = "text" id = "website" placeholder = "http://www.example.com" name = "website" /> -->
{{ form.website }}
<label for = "email">Enter Your Email:</label>
<!-- <input type = "text" id = "email" placeholder = "[email protected]" name = "website" /> -->
{{ form.email }}
</div>
<div class = "some-other-class">
<div class = "another-class">
<button name = "submit">Submit</button>
</div>
</div>
</form>
Мой вопрос: как мне получить данные для этой формы в таблице в моей базе данных postgres?
@DanielRoseman Я только что подписался на этот docs.djangoproject.com/en/2.0/topics/forms
Ну это только одна часть. Вместо того, чтобы читать отдельную страницу документации, вам следует следовать руководству.
@DanielRoseman какой учебник?





Вы можете создать МодельФорма вместо формы и превратить вашу форму в Модель:
class SimpleModel(models.Model):
website = models.URLField(
required=True,
widget=forms.TextInput(attrs = {'placeholder': "http://www.example.com"}))
email = models.EmailField(
required=True,
widget=forms.TextInput(attrs = {'type': 'email', 'placeholder': "[email protected]"}))
class SimpleForm(forms.ModelForm):
class Meta:
model = SimpleModel
fields = ['website', 'email']
Перейдите по ссылке и посмотрите документацию, вы можете сделать ее очень абстрактной, Django может справиться с большинством вещей за вас.
При сохранении можно сделать form.save() как видно здесь
Целесообразно сначала проверить форму, выполнив form.is_valid()
Пример просмотра:
def simple_form(request):
if request.method == 'POST':
form = SimpleForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'some_page.html')
form = SimpleForm()
return render(request, 'some_other_page.html', {'form': form})
Вы также можете подписаться на этот учебник, чтобы познакомиться с основами Django. Похоже, вы могли бы использовать основы;)
Как мне это сделать с obj.save(), если у моих просмотров есть website и email под условием? мне все равно делать form.save()?
У тебя есть модель? Если да, то почему бы вам не использовать модельную форму? А если нет, то как вы ожидаете, что данные попадут в базу данных?