Introduction
- Simple way to implement dynamic image upload_to path based on object.It is now possible for the
upload_to
parameter of theFileField
orImageField
to be a callable, instead of a string. The callable is passed the current model instance and uploaded file name and must return a path.
Models.py
class Books(models.Model):
no=models.IntegerField()
class Collection(models.Model):
def imagepath(instance,filename):
val="Book_Media/" + str(instance.Books.no) + "/" + str(filename)
return val
Page=models.ForeignKey('Books')
image=models.ImageField(upload_to=imagepath)
Description:imagepath is the callable (in this case a function). It simply gets the 'no' from the instance of
Books
and uses that in the upload path. Images will be uploaded to paths like: Book_Media/1/djano.jpg
Labels: Django
Introduction:
Simple way to implement Ajax in Django with the help of Dojo toolkit.
1.Models.py
Create a model for Book
class Book(models.Model):
author = models.CharField(max_length = 60)
year = models.IntegerField()
ref_no =models.IntegerField()
2.Form.py
Create a ModelForm for 'Book' Models
Write a function for save the details of 'Book'
Import Dojo necessary packages to your html file
Import Ajax.js where we are going to write the ajax function.
Div 'result' for show the response(from form.py) after the form submission.
Write a function named as ValidateBook
Declare a variable 'kw'
Variable 'data' contains the response .
If the Book details storeded in database, then form.py will return '1' for confirmation
If Book details failed to validate , then error response will return.
class BookForm(ModelForm):
class Meta:
model=Book
def AddBook(request):
if request.method == 'POST':
form=BookForm(request.POST)
if form.is_valid():
form.save()# save Book
return HttpResponse ("1")#if Book object stored, return confirmation.
else:
return HttpResponse ("Please check the form data.")# if form validation failed
else:
form=BookForm()
return render_to_response("Register.html",{'Form':form})
3. Register.html
<script type="text/javascript" src="/path_to_dojo/dojo-release-1.2.0/dojo/dojo.js" djConfig="parseOnLoad:true"></script>
<script type="text/javascript" src="ajax.js" ></script>
<body>
<div id=”result”></div>
<div id=”FormDiv”>
<form id="AddBook">
{{Form}}
</form>
<input type="submit" onclick="return ValidateBook();">
<div>
</body>
4.Ajax.js
function ValidateBook()
{
var kw = {
form: dojo.byId("AddBook"),
url: "/book/add/",
load: function(data){
if (data==1)
{
dojo.byId("result").innerHTML="Book details has been registered successfully. ;
dojo.byId("FormDiv").innerHTML=""
}
else
{
dojo.byId("test").innerHTML = data;
}
},
error: function(data){
console.debug("An error occurred: ", data);
},
timeout: 5000,
form: "AddBook"
};
dojo.xhrPost(kw); //Servlet get argement with doPost
}
}
Introduction
Ubuntu is a great OS for use in both virtualisation hosts and in guest virtual machines and software appliances. Virtualization simply means the running of another OS within a host OS, through the usage of a special "hypervisor" application which handles everything about how the guest OS operates within (and with) the host system
Disable Apparmor:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
Install XEN:
apt-get install ubuntu-xen-server
After installation of xen you should edit xorg.conf file.
Update xorg configuration.vim /etc/X11/ xorg.conf
Your original xorg.conf files looks
Now add the following line in xorg.confSection "Device"
Identifier "Configured Video Device"Section "Device"
Identifier "Configured Video Device"
Driver "i810"
- Note: Here i810 refers to graphics chipset.So check out your system graphics chipset.
Download 2.6.24-16-xen kernel To avoid network problem:
wget http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb
Replace the Ubuntu 2.6.24-16-xen kernel:
dpkg -i linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb
- Reboot your system
Move tls file:
mv /lib/tls /lib/tls.disabled
Modify Modules:
Add the line in vim /etc/modules
loop max_loop=64
Directory for XEN:
mkdir /home/xen
Modify xen-tools.conf:
vim /etc/xen-tools/xen-tools.conf
install-method = debootstrap # method will change with respect to type of OS
dir = /home/xen
dhcp = 1
dist = hardy # Type of guest os
passwd = 1
mirror = http://192.168.1.36:9999/ubuntu/
- Reboot your system
Now Run
jayapal@kcs:~$ uname -r
2.6.24-16-xen
Create Guest OS:
jayapal@kcs:~$ xen-create-image --hostname=Guestos --ide --passwd
Note: You can give size, swap, Network settings, etc... to override settings in xen-tools.conf.
For more details jayapal@kcs:~$ man xen-create-image
After creating image file,Terminal will show message as :
Logfile produced at:
/var/log/xen-tools/Guestos.log
Guestos.cfg
vim /etc/xen/Guestos.cfg
kernel = '/boot/vmlinuz-2.6.24-16-xen'
ramdisk = '/boot/initrd.img-2.6.24-16-xen'
memory = '128'
vcpus = '2' #For dual-core CPU
root = '/dev/hda2 ro'
disk = [
'tap:aio:/home/xen/domains/Guestos/swap.img,hda1,w',
'tap:aio:/home/xen/domains/Guestos/disk.img,hda2,w',
]
vif = [ 'ip=192.168.2.10 mac=00:16:3E:C9:C2:6C' ]
To start the virtual machine:
xm create /etc/xen/Guestos.cfg
Using config file "/etc/xen/Guestos.cfg".
Started domain Guestosxm console Guestos
Guestos started and it will prompt for user login.To Stop the virtual machine:
xm shutdown Guestosfor more command see xm man
For Centos:
Download initrd.img and vmlinuz, then move in to /boot/ directory
wget http://mirror.centos.org/centos/5/os/i386/images/xen/initrd.img
wget http://mirror.centos.org/centos/5/os/i386/images/xen/vmlinuzMirror
http://mirror.centos.org/centos/5/os/i386/images/xen/
Source:
http://www.howtoforge.com/ubuntu-8.04-server-install-xen-from-ubuntu-repositories
Labels: ubuntu, Virtualization, xen