django - 使用 django-fm 加载模态表单的问题
问题描述
根据此处给出的示例: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'
这种奇怪是有道理的吗?
解决方案
最后,我意识到出了什么问题。
我试图从同一个 url 创建新的 django-fm 窗口。在这里,除了创建之外,我还添加了更新和删除 url 映射。
因此,urls.py 文件定义如下:
urlpatterns = [
#### USER CRUD ####
url(r'^users/',views.user_list,name="users"),
url(r'^user/new/$',views.UserCreateView.as_view(),name="user_new"),
url(r'^user/edit/(?P<pk>\d+)/$', views.UserUpdateView.as_view(), name='user_edit'),
url(r'^user/delete/(?P<pk>\d+)/$', views.UserDeleteView.as_view(), name='user_delete'),
]
试图了解如何处理 django-fm 表单,我最终使用 AjaxCreateView、AjaxUpdateView 和 AjaxDeleteView 操作创建了一个完整的项目,可以从这里访问:https ://github.com/TopFlankerKiller/localagency/tree/master
在其他信息中,django-fm 的安装步骤可以从文件中的用户那里找到:How to create and operating modal windows using django-fm.pdf
推荐阅读
- python - 从 CSV 读取数据并将数据写入 CSV - 字符串到整数
- ios - 为什么我的 PhoneGap 应用程序图形仅在 iOS 上损坏?
- sql-server - 从 SSIS 连接到 SQL2000
- javascript - 使用动态值 $(this).val() 将 !important 添加到 jQuery
- paypal - 如何在 PayPal API billing-agreements/agreement-tokens 中传递自定义徽标图像和用户注释
- r - 尝试将表写入非默认架构时,SQL 函数不起作用
- macos - 坚持全球纱线呼叫Jhipster
- c++ - 正则表达式查找忽略几个字符的子字符串
- gnupg - 使用 gpg2 验证 TortoiseGit-2.8.0.0-64bit.msi
- python - TimeSeriesSplit 的评估和跟踪/绘图