Я создал свою модель, но меня смущает создание представлений для сохранения моих данных из отправленной формы в базе данных. - PullRequest
0 голосов
/ 22 февраля 2020

models.py

from django.db import models
class Aganwadi(models.Model):
    name= models.CharField(max_length=30)
    email= models.EmailField()
    district=models.TextField()
    phone=models.IntegerField()

    def __str__(self):
        return self.name

У меня есть шаблон для формы, который называется aganwadi. html в users / templates / users / aganwadi. html views.py

from django.shortcuts import render,redirect
from django.contrib import messages
from django.contrib.auth.decorators import login_required

def Aganwadi(request):
    return render(request,'users/aganwadi.html')

urls.py

from django.urls import path,include
from users import views as user_views
from django.contrib.auth import views as auth_views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
    path('admin/', admin.site.urls),
     path('login/',auth_views.LoginView.as_view(template_name='users/login.html'),name='login'),
     path('logout/',auth_views.LogoutView.as_view(template_name='users/logout.html'),name='logout'),
     path('aganwadi/',user_views.Aganwadi,name='aganwadi'),
     path('', include('pmmvyapp.urls')),

]

Я хочу сохранить данные, представленные в моей форме, для хранения в базе данных

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

Если вы хотите использовать вашу модель для сохранения данных, сначала вам нужно создать форму:

form.py

from django.forms import models
from .models import YourModel
class YourForm(models.ModelForm):
    class Meta:
        model = YourModel

Теперь вы можете использовать ModelForm в вашем представлении. view.py

from .forms import YourForm
def Aganwadi(request):
    form = YourForm(request.POST or None) # initialize form or get POST data
    if request.method == 'POST': # considering html form has action=post
          if form.is_valid()
             form.save()
    return render(request,'users/aganwadi.html', context={'form':form})

В конце вы должны использовать форму в файле html ... aganwadi. html

<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Save     </button>
</form>

Я настоятельно рекомендую вам go через django учебник

0 голосов
/ 22 февраля 2020

внутри функции views.py вы можете делать то, что вы хотите

def Aganwadi(request):
    if request.method == 'POST': # considering html form has action=post
          username = request.POST.get('username') # provided that your form has field named username
          new_user = User.objects.create(username=username)
          new_user.save()
    return render(request,'users/aganwadi.html')

, но пример очень далек от того, чтобы быть продуктом только для подсказки. более рекомендуется использовать django формы вместо html формы

...