Django ModelForm не сохраняет данные в Model - PullRequest
0 голосов
/ 14 июня 2019

Я создал модель и соответствующие ModelForm, view и Template для нее, но ModelForm не сохраняет данные в модель, даже если используется функция .save ().Я пробовал просматривать формы и представления, но не знаю, что не так. Я разместил соответствующие модели, формы, представления и шаблоны в вопросе.

models.py:

class Centre(models.Model):
    Location = (
    ('rashmi_heights', 'Rashmi Heights Centre'),
    ('Levana', 'Levana Centre')
)

    name= models.CharField(max_length=50, blank=False, choices=Location, unique=True)
    address = models.CharField(max_length =250)
    contact = models.CharField(max_length=100, blank=False)
    phone = PhoneField(blank=True, help_text='Contact phone number')


    def __str__(self):
        return self.name

forms.py:

class CentreForm(forms.ModelForm):
    class Meta():
        model = Centre
        fields = '__all__'

views.py:

def centre(request):

    forms = CentreForm()

    if request.method == 'POST':
        forms = CentreForm(request.POST)

        if forms.is_valid():

            centre = forms.save(request.POST)
            centre.save()

        else:
            forms = CentreForm()

    return render(request,'NewApp/centreinfo.html',{'forms':forms})

шаблон:

<!DOCTYPE html>

{% extends 'NewApp/base.html' %}
{% load staticfiles %}
{% block body_block %}

<div class="jumbotron">

    <h2>Fill details about your centre.</h2><br>
    <h3> </h3>

    <form method="post" enctype="multipart/form-data">
        {{forms.as_p}}
        {% csrf_token %}
        <a class="btn btn-primary" href="{% url 'NewApp:centreinfo' %}">Submit</a>
    </form>

</div>

{% endblock %}

1 Ответ

1 голос
/ 14 июня 2019
forms.py:

class CentreForm(forms.ModelForm):
    class Meta: -> change here
        model = Centre
        fields = '__all__'


def centre(request):
    forms = CentreForm()
    if request.method == 'POST':
        forms = CentreForm(request.POST)
        if forms.is_valid():
            forms.save(request.POST)
        else:
            forms = CentreForm()

    return render(request,'NewApp/centreinfo.html',{'forms':forms})

html

 <form method="post" enctype="multipart/form-data">
        {{forms.as_p}}
        {% csrf_token %}
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
...