На основе приведенного здесь примера: https://github.com/django-fm/django-fm Я не могу успешно загрузить модальное окно на основе предоставленного соответствующего файла form-view-model .py.
Вот мой код в models.py:
from django.db import models
class Test(models.Model):
test_one = models.CharField(max_length=200)
test_two = models.CharField(max_length=200)
def __str__(self):
'''this function returns the name of the instance'''
return self.test_one+self.test_two
Вот мой код в forms.py:
from django import forms
from .models import Test
class TestForm(forms.ModelForm):
class Meta:
model = Test
fields = ['test_one', 'test_two',]
Вот мой код в views.py:
from fm.views import AjaxCreateView
from .forms import TestForm
from .models import Test
class TestCreateView(AjaxCreateView):
model = Test
form_class = TestForm
template_name = 'form_example/test.html'
Вот мой код в urls.py:
from django.contrib import admin
from django.conf.urls import url,include
from form_example.views import TestCreateView
urlpatterns =[
url(r'^create/$',TestCreateView.as_view(),name="test_create"),
]
и, наконец, код в test.html:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</head>
<body>
{% include "fm/modal.html" %}
{% block content %}{% endblock %}
<a class="fm-create" href="{% url 'test_create' %}" data-fm-head="Creating new User" data-fm-callback="appendWithAlert" >
<button class="btn btn-primary btn-sm" type="">Create new User</button></a>
<script type="text/javascript">
$(function() {
$.fm({debug: true});
});
</script>
<script type="text/javascript">
$(function() {
$.fm({
debug: true,
custom_callbacks: {
"appendWithAlert": function(data, options) {
$(options.modal_target).append(data.message);
alert("model instance created!");
}
}
});
});
</script>
</body>
</html>
После нажатия кнопки «Создать нового пользователя» результат будет:
И если я прокомментирую строку
template_name = 'form_example/test.html'
в views.py и снова запустите приложение, результат:
Как эта странность оправдана?