Created
November 10, 2010 05:08
-
-
Save rutcreate/670385 to your computer and use it in GitHub Desktop.
ExtJS with Django
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.db import models | |
class Mail(models.Model): | |
subject = models.CharField(max_length=255) | |
message = models.TextField() | |
sender = models.EmailField() | |
created = models.DateTimeField(auto_now_add=True) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Ext.onReady(function(){ | |
// Required if showing validation messages | |
Ext.QuickTips.init(); | |
// Callback send mail. | |
var sendMail = function() { | |
if (form.getForm().isValid()) { | |
form.getForm().submit({ | |
url: '/sendmail', | |
waitMsg: 'Sending...', | |
success: function(form, o) { | |
console.log(o); | |
Ext.Msg.alert('Success', o.result.msg); | |
} | |
}); | |
} | |
} | |
var form = new Ext.form.FormPanel({ | |
title: 'Contact Us', | |
bodyStyle: 'padding:15px', | |
width: 350, | |
defaultType: 'textfield', | |
defaults: { | |
// applied to each contained item | |
width: 230, | |
msgTarget: 'side' | |
}, | |
items: [{ | |
fieldLabel: 'Subject', | |
name: 'subject', | |
allowBlank: false, | |
labelSeparator: ':' // override labelSeparator layout config | |
},{ | |
fieldLabel: 'Email', | |
name: 'email', | |
allowBlank: false, | |
vtype:'email' | |
},{ | |
xtype: 'textarea', | |
hideLabel: true, // override hideLabels layout config | |
name: 'message', | |
allowBlank: false, | |
anchor: '100% -53' | |
}], | |
buttons: [ | |
{text: 'Save', handler: sendMail}, | |
{text: 'Cancel'} | |
], | |
layoutConfig: { | |
//labelSeparator: '~' // superseded by assignment below | |
}, | |
// config options applicable to container when layout='form': | |
hideLabels: false, | |
labelAlign: 'left', // or 'right' or 'top' | |
//labelSeparator: '>>', // takes precedence over layoutConfig value | |
labelWidth: 65, // defaults to 100 | |
labelPad: 8 // defaults to 5, must specify labelWidth to be honored | |
}); | |
var fPanel = new Ext.Panel({ | |
region: 'center', | |
items: [form] | |
}); | |
viewport = new Ext.Viewport({ | |
layout: 'border', | |
items: [fPanel] | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.shortcuts import render_to_response | |
from django.http import HttpResponse | |
from django.core import serializers | |
import json | |
from extjs.mail.models import Mail | |
def sendmail(request): | |
# Predefined | |
_subject = request.POST.get('subject') or '' | |
_sender = request.POST.get('email') or '' | |
_message = request.POST.get('message') or '' | |
_success = True | |
# Insert object. | |
if (_subject == '' or _sender == '' or _message == ''): | |
_success = False | |
_msg = 'Your data is not enough.' | |
else: | |
m = Mail(subject=_subject, sender=_sender, message=_message) | |
m.save() | |
_msg = 'We got your message.' | |
# Return object. | |
ret = {'success': _success, 'msg': _msg} | |
return HttpResponse(json.dumps(ret)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment