我一直在努力理解在Django中做Ajax的最佳方法是什么.通过阅读这里和那里的东西我收集到的常见过程是:
使用一些JavaScript库(例如,jQuery)制定您的Ajax调用,在Django中设置一个捕获调用并将其传递给视图函数的URL模式
在Python视图函数中检索您感兴趣的对象并以JSON格式或类似方式将它们发送回客户端(通过使用内置的序列化程序模块或simplejson)
在JavaScript中定义一个回调函数,接收JSON数据并解析它们,以便创建需要显示的任何HTML.最后,JavaScript脚本将HTML放在任何位置.
现在,我仍然没有得到的是Django模板如何与所有这些相关?显然,我们根本没有充分利用模板的力量.理想情况下,我认为传回JSON对象和模板名称会很好,这样可以迭代数据并创建HTML块.但也许我在这里完全错了......
我发现这个方向的唯一资源是这个片段(769),但我还没有尝试过.显然,在这种情况下会发生的是,所有生成的HTML都是在服务器端创建的,然后传递给客户端.JavaScript-callback函数只需要在正确的位置显示它.
这会导致性能问题吗?如果没有,即使不使用上面的代码片段,为什么不使用Python而不是前端直接在后端格式化HTML?
非常感谢!
更新:请使用片段942,因为它是上面的增强版!我发现继承支持这种方式效果更好..
我正在寻找一个Django应用程序,它可以让我选择部分图像并用标签或文本"注释"它们.
我猜一种方法可能是使用插件,如jquery-image-annotate,并将其与我的django应用程序(最好是管理员)集成 - 但我想知道是否已经有了这样做.谢谢!
假设我处于通常情况下,在many2many关系中有额外的字段:
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
# other models which are unrelated to the ones above..
class Trip(models.Model):
placeVisited = models.ForeignKey(Place)
visitor = models.ForeignKey(Person)
pleasuretrip = models.Boolean()
class Place(models.Model):
name = models.CharField(max_length=128)
Run Code Online (Sandbox Code Playgroud)
我想在会员表单中添加一些通过内联显示的额外字段.这些字段基本上是另一个模型(Trip)实例化的快捷方式.Trip可以拥有自己的管理员视图,但需要这些快捷方式,因为当我的项目合作伙伴在系统中输入"会员"数据时,他们碰巧也有"旅行"信息(并且还因为会员资格中的某些信息可能只是被复制到旅行等.).
因此,所有我想有在籍内嵌了两个附加字段- placeVisited和pleasuretrip -这与Person实例在一起会让我实例在后台旅行模式 ...
我发现通过定义自己的表单,我可以轻松地将额外的字段添加到内联视图中.但是一旦输入数据,如何以及何时引用它们以执行我需要执行的保存操作?
class MyForm(forms.ModelForm):
place = forms.ModelChoiceField(required=False, queryset=Place.objects.all(), label="place",)
pleasuretrip = forms.BooleanField(required=False, label="...")
class MembershipInline(admin.TabularInline):
model = Membership …Run Code Online (Sandbox Code Playgroud) 我想尝试从pdf中提取突出显示的文本,所以我开始查看pdfminer但找不到此特定函数的任何文档.
这有可能吗?
我是一个Sublime Text新手,我以前在那里使用Textmate我有一个方便的'今天'命令,它在编辑器中返回今天的日期(使用shell).
eg 'today' + TAB ==> '12/10/2012/'
Run Code Online (Sandbox Code Playgroud)
我如何在Sublime中创建类似的东西?
django ×3
python ×2
ajax ×1
annotations ×1
django-admin ×1
forms ×1
image ×1
inline ×1
json ×1
pdf ×1
shell ×1
sublimetext2 ×1
templates ×1